TRX 0.6.0

TRX 0.6.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年9月
SwiftSwift 版本4.0
SPM支持 SPM

Adam Modzelewski 维护。




TRX 0.6.0

TRX

TRX 是一个易于使用、功能强大,注重性能的多用途动画框架。
TRX 受到优秀的 JavaScript 动画框架 GSAP 启发。

本版本适用于 Swift 4。对于与 Swift 3 兼容的版本,请使用 0.5.0。

主要功能

  • 动画任何数值
  • 将 Tweens、重叠和分组到 Timelines 中
  • 压缩和拉伸 Tweens 和 Timelines
  • 完全控制,暂停,播放,搜索任何 Tween 或 Timeline

示例

Tricks

查看示例应用 Tricks

使用 TRX

基本用法

动画任何值

Tween(from: 0, to: 20, time: 0.3) {
  object.value = $0
}.start()

或者,更简洁...

1.trx(to: 20) { object.value = $0 }.start()

动画 DoubleCGFloatCGPointCGSizeCGRectCGAffineTransformCATransform3D
或者甚至是您自己的类型(通过扩展 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()

Timeline

添加重叠的 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()

Timeline with an overlap

压缩和拉伸 Tweens 或时间轴

let tween = Tween(from: 0,
                  to: 1,
                  time: 0.5) { print($0) }

tween.scale = 2 // duration: 1s
tween.duration = 2.0 // scale: 4

UIView 整合

移动到新位置

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

安装

Cocoa Pods

pod "TRX"

不要忘记在 Podfile 中添加 use_frameworks!
需要 CocoaPods 0.36.x 或更高版本。
如果您需要更多帮助,请查阅《CocoaPods Guides》。

Swift Package Manager (测试版)

Package.swift 中指定依赖

...
.Package(url: "https://github.com/Trxy/TRX.git", majorVersion: 0, minor: 3),
...

手动

  1. 下载或克隆项目
  2. 构建首选目标(例如:TRX iOS)
  3. 在 finder 中找到框架(从产品组)并添加到您的项目中。
  4. 在“构建阶段”中将框架添加为目标项目的依赖项。
  5. 将框架添加到“链接二进制与库”(“通用”标签下的“嵌入的二进制文件”中)。
  6. 为了分发您的应用程序,您需要为所有可能的架构(armv7, armv7s, arm64, x86等)构建它。

贡献

欢迎您的贡献和建议!

如果您在使用TRX时遇到任何问题或有任何功能请求,请随意创建一个问题和一个或多个拉取请求。
遇到问题时,请勿忘记添加详细描述,Xcode和目标版本以及重现步骤。

如果您想提出一个通用的疑问,请使用带有标签 trx.swiftStack Overflow

待办事项

  • Mac版本
  • 自定义贝塞尔曲线缓动效果
  • 短旋转插件
  • 贝塞尔路径插件

许可证

MIT

贡献者