Motion 3.1.3

Motion 3.1.3

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2019年9月
SPM支持Swift Package Manager (SPM)

Daniel Dahan维护。



Motion 3.1.3

Motion Logo

Motion

欢迎来到 Motion, 一个用于创建对于视图、层和视图控制器美丽动画和转换的库。

Photos 示例

查看一个以Photos项目入门。

Photos

谁适合使用Motion?

Motion是为初学者到高级开发者设计的。对于初学者来说,你将接触到非常强大的API,这些API将需要时间和经验才能自己开发,而专家将欣赏使用Motion节省的时间。

你将学到什么

你将通过一个对基本概念的综述和易于使用的代码片段,学习如何使用Motion。

转换

使用名为 motionIdentifier 的链接标识属性,运动转换将源视图转换到目标视图。

匹配 平移 旋转 弧线 缩放
Match Translate Rotate Arc Scale

使用示例

使用转换从一个视图控制器过渡到另一个视图控制器的示例

视图控制器 1

greyView.motionIdentifier = "foo"
orangeView.motionIdentifier = "bar"

视图控制器 2

isMotionEnabled = true
greyView.motionIdentifier = "foo"
orangeView.motionIdentifier = "bar"
orangeView.transition(.translate(x: -100))

上述代码片段告诉 视图控制器 1 中的源视图使用 motionIdentifier 链接到 视图控制器 2 中的目标视图。可以在转换过程中使用 转换 方法给视图添加动画。该方法接受配置视图动画的 MotionTransition 结构。

UINavigationController、UITabBarController 和 UIViewController 转换

Motion 提供了默认的转换效果,它们可以被 UINavigationControllers、UITabBarControllers 和呈现的 UIViewControllers 使用。

推送 滑动 缩放滑动 覆盖 页面 淡入淡出 缩放
Push Slide Zoom Slide Cover Page Fade Zoom

使用示例

使用 UINavigationController 和缩放过渡从一个视图控制器切换到另一个视图控制器的示例

UINavigationController

class AppNavigationController: UINavigationController {
    open override func viewDidLoad() {
        super.viewDidLoad()
        isMotionEnabled = true
        motionNavigationTransitionType = .zoom
    }
}

要添加自动反向过渡,使用 autoReverse

motionNavigationTransitionType = .autoReverse(presenting: .zoom)

动画

Motion 提供了创建精彩动画所需的基本构件,无需太多努力。Motion 的动画 API 将使维护成为易事,并使更改变得更加简单。要创建动画,请使用 View 或 Layer 的 animate 方法并传入一系列 MotionAnimation 结构。MotionAnimation 结构是可配置的值,描述了如何对属性或一组属性进行动画处理。

背景颜色 圆角半径 淡入淡出 旋转 尺寸 弹性
Background Color Corner Radius Fade Rotate Size Spring
边框颜色 & 边框宽度 深度 位置 缩放 旋转 平移
Border Color & Border Width Depth Position Scale Spin Translate

使用示例

let box = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
box.backgroundColor = .blue

box.animate(.background(color: .red), .rotate(180), .delay(1))

在上面的代码示例中,创建了一个具有 100 宽度、100 高度和初始背景颜色为蓝色的 box 视图。在生成视图的一般步骤之后,将包含颜色的 Motion animate 方法传递给告诉视图将背景颜色动画转换为红色并在延时 1 秒后旋转 180 度的 MotionAnimation 结构。这就是创建动画的基本思想。

要求

  • iOS 8.0+
  • Xcode 8.0+

通信

  • 如果你需要帮助,请使用 Stack Overflow。(标签 'cosmicmind')
  • 如果你想提出一个一般性的问题,请使用 Stack Overflow
  • 如果你发现了一个错误,且能够提供可靠重复该错误的方法, Opening an issue。
  • 如果你有一个功能请求,请打开一个 issue。
  • 如果你想要贡献力量,提交一个 pull request。

安装

嵌入式框架需要至少iOS 8的部署目标。

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。你可以使用以下命令安装它

$ gem install cocoapods

要使用 CocoaPods 将 Motion 的核心功能集成到 Xcode 项目中,将它们在 Podfile 中指定

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'Motion', '~> 3.1.0'

然后,运行以下命令

$ pod install

Carthage

Carthage 是一个分布式的依赖管理器,它构建你的依赖项并提供二进制框架。

你可以使用 Homebrew 使用以下命令安装 Carthage

$ brew update
$ brew install carthage

要将 Motion 集成到你的 Xcode 项目中,将Carthage在Cartfile中指定

github "CosmicMind/Motion"

运行 carthage update 以构建框架,并将构建的 Motion.framework 拖入到 Xcode 项目中。

更改日志

动画是一个不断发展的项目,在其开发过程中将遇到一系列变化。建议在更新版本之前先查看变更日志

许可证

MIT许可证(MIT)

版权所有 (C) 2019, CosmicMind, Inc. http://cosmicmind.com. 保留所有权利。

任何人都可以免费获得此软件及其相关文档(以下简称“软件”)的副本,用于处理软件,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向提供软件的人这样做,但前提是满足以下条件

以上版权声明和许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他情况下产生的,该索赔、损害或其他责任源于、因之或与之有关软件的使用或其他方式。