Ease 3.1.1

Ease 3.1.1

Robert-Hein Hooijmans维护。



Ease 3.1.1

Ease

Ease 是一个事件驱动的动画系统,它将观察者模式与自定义弹簧动画作为观察者相结合。它很神奇。

功能

  • 动画任何值类型
  • 为一个值设置多个动画
  • 当更新 targetValue 时,动画轨迹会更新
  • 为任何值变化添加自然的弹簧行为
  • 优化供Swift 5使用
  • 与iOS 9及更高版本兼容

支持的价值类型

  • CGFloat
  • CGPoint
  • CGSize
  • CGVector
  • Int
  • Float
  • Double
  • SCNVector3

易于扩展以支持更多(自定义)类型。

示例

如何实现

使用初始值创建你的 Ease 对象

var ease: Ease<CGPoint> = Ease(view.center, minimumStep: 0.001)

添加你的自定义弹簧动画

ease.addSpring(tension: 300, damping: 15, mass: 1) { position in
    view.center = position
}

设置Ease对象的target值,并根据需要调整目标值

ease.targetValue = gestureRecognizer.location(in: view)

内存管理

对于单个弹簧动画,您可以将其返回的 EaseDisposable 存储到变量中

disposable = ease.addSpring(tension...

对于多个弹簧动画,您可以将 disposable 添加到 EaseDisposal 变量中

ease.addSpring(tension...) { }.add(to: &disposal)

在您的弹簧动画内部引用 self 时,始终要弱化 self

ease.addSpring(tension...) { [weak self] position in

安装

Ease via CocoaPods 可用。要安装它,只需将以下行添加到您的 Podfile 中

pod 'Ease'

建议或反馈?

请随意创建一个 pull request,打开一个问题或在 Twitter 上找到我。