Ease

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

特性

支持的值类型

可以轻松扩展更多(自定义)类型。

示例

如何使用

使用初始值创建您的 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 上找到我