Ease 是一个事件驱动的动画系统,它将观察者模式与自定义弹簧动画作为观察者相结合。 它非常神奇。
targetValue
时,动画轨迹会更新可以轻松扩展更多(自定义)类型。
使用初始值创建您的 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 value,并根据需要经常调整您的 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 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile
pod 'Ease'
欢迎创建 pull request,打开 issue 或在 Twitter 上找到我。