测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年9月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✓ |
由 Adam Modzelewski 维护。
TRX 是一个易于使用、功能强大,注重性能的多用途动画框架。
TRX 受到优秀的 JavaScript 动画框架 GSAP 启发。
本版本适用于 Swift 4。对于与 Swift 3 兼容的版本,请使用 0.5.0。
查看示例应用 Tricks。
动画任何值
Tween(from: 0, to: 20, time: 0.3) {
object.value = $0
}.start()
或者,更简洁...
1.trx(to: 20) { object.value = $0 }.start()
动画 Double
、CGFloat
、CGPoint
、CGSize
、CGRect
、CGAffineTransform
、CATransform3D
或者甚至是您自己的类型(通过扩展 Morphable 协议)
Tween(from: CGPoint.zero, to: CGPoint(x: 20, y: 15), time: 0.3) {
layer.position = $0
}.start()
Tween(from: 0,
to: 1,
time: 0.3,
delay: 0.1,
ease: Ease.Elastic.easeOut,
key: "MyOwnKey",
onStart: { print("start") },
onComplete: { done in print("complete and done: \(done)") }) { value in
object.value = value
}.start()
from
:起始值(Morphable
)。to
:结束值(Morphable
)。time
:持续时间(《NSTimeInterval)。delay
:可选时间偏移(《NSTimeInterval)。默认为 0。ease
:可选缓动函数(《Ease.TimingFunction)。默认为 Ease.Quad.easeOut。key
:可选动画键(《String)。具有相同键的任何其他正在运行的动画将被停止。默认为 nil。onStart
:可选开始回调。默认为 nil。onComplete
:可选完成回调。默认为 nil。update
:更新回调使用时间轴来链接 Tweens 或甚至是其他时间轴
TimeLine(tweens: [
1.trx(to: 20) { object.value = $0 },
30.trx(to: 40) { object.value = $0 },
40.trx(to: 50) { object.value = $0 },
]).start()
添加重叠的 Tweens
let timeline: TimeLine = [
1.trx(to: 20) { object.value = $0 }: 0,
30.trx(to: 40) { anOtherObject.value = $0 }: -0.5,
40.trx(to: 50) { anOtherObject.value = $0 }: -0.5
]
timeline.start()
let tween = Tween(from: 0,
to: 1,
time: 0.5) { print($0) }
tween.scale = 2 // duration: 1s
tween.duration = 2.0 // scale: 4
移动到新位置
myView.trxCenter(to: CGPoint(x: 10, y: 15))
从位置移动到当前位置
myView.trxCenter(from: CGPoint.zero)
将动画帧动画到给定的 CGRect
myView.trxFrame(to: someFrame)
将动画帧从给定的 CGRect
到当前位置动画
myView.trxFrame(to: someFrame)
iOS: 8.4, tvOS: 9.0, Xcode 8, Swift 3.0
对于与 swift 2.3 兼容的版本,请查看 TRX 4.x
pod "TRX"
不要忘记在 Podfile 中添加 use_frameworks!
需要 CocoaPods 0.36.x 或更高版本。
如果您需要更多帮助,请查阅《CocoaPods Guides》。
在 Package.swift 中指定依赖
...
.Package(url: "https://github.com/Trxy/TRX.git", majorVersion: 0, minor: 3),
...
欢迎您的贡献和建议!
如果您在使用TRX时遇到任何问题或有任何功能请求,请随意创建一个问题和一个或多个拉取请求。
遇到问题时,请勿忘记添加详细描述,Xcode和目标版本以及重现步骤。
如果您想提出一个通用的疑问,请使用带有标签 trx.swift 的 Stack Overflow。
贡献者