Motion
欢迎来到 Motion, 一个用于创建对于视图、层和视图控制器美丽动画和转换的库。
Photos 示例
查看一个以Photos项目入门。
谁适合使用Motion?
Motion是为初学者到高级开发者设计的。对于初学者来说,你将接触到非常强大的API,这些API将需要时间和经验才能自己开发,而专家将欣赏使用Motion节省的时间。
你将学到什么
你将通过一个对基本概念的综述和易于使用的代码片段,学习如何使用Motion。
转换
使用名为 motionIdentifier
的链接标识属性,运动转换将源视图转换到目标视图。
匹配 | 平移 | 旋转 | 弧线 | 缩放 |
---|---|---|---|---|
使用示例
使用转换从一个视图控制器过渡到另一个视图控制器的示例
视图控制器 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 使用。
推送 | 滑动 | 缩放滑动 | 覆盖 | 页面 | 淡入淡出 | 缩放 |
---|---|---|---|---|---|---|
使用示例
使用 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 结构是可配置的值,描述了如何对属性或一组属性进行动画处理。
背景颜色 | 圆角半径 | 淡入淡出 | 旋转 | 尺寸 | 弹性 |
---|---|---|---|---|---|
边框颜色 & 边框宽度 | 深度 | 位置 | 缩放 | 旋转 | 平移 |
---|---|---|---|---|---|
使用示例
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. 保留所有权利。
任何人都可以免费获得此软件及其相关文档(以下简称“软件”)的副本,用于处理软件,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向提供软件的人这样做,但前提是满足以下条件
以上版权声明和许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他情况下产生的,该索赔、损害或其他责任源于、因之或与之有关软件的使用或其他方式。