KRTimingFunction
[](https://travis-ci.org/Joshua Park/KRTimingFunction)
简介
KRTimingFunction 是一组时间函数,从 JQuery 时间函数 中移植而来。
示例
要运行示例项目,首先克隆仓库,然后从示例目录运行 pod install
。
安装
KRTimingFunction可以通过CocoaPods来获得。为了安装它,只需要在您的Podfile中添加以下行
pod 'KRTimingFunction', :git => 'https://github.com/BridgeTheGap/KRTimingFunction.git'
用法
函数列表
线性
easeInSine easeOutSine easeInOutSine
easeInQuad easeOutQuad easeInOutQuad
easeInCubic easeOutCubic easeInOutCubic
easeInQuart easeOutQuart easeInOutQuart
easeInQuint easeOutQuint easeInOutQuint
easeInExpo easeOutExpo easeInOutExpo
easeInCirc easeOutCirc easeInOutCirc
easeInElastic easeOutElastic easeInOutElastic
easeInBack easeOutBack easeInOutBack
easeInBounce easeOutBounce easeInOutBounce
更多解释和这些函数的视觉表示可以在Easings找到。
如何使用
大多数定时函数可以通过以下语法进行调用
// TimingFunction.(functionName)(rt: Double, b: Double, c: Double)
TimingFunction.linear(rt: 0.5, b: 0.0, c: 100.0)
-
rt
:相对时间(相对于整个动画持续时间的进度,用于计算值。)在上面的例子中,如果动画的整个持续时间是2秒,函数将返回1秒标记的值,即整个动画时间的0.5。 -
b
:初始值。在上面的例子中,如果动画正在渲染视图的origin.x,视图将从0.0开始。 -
c
:值变化(结束值 - 初始值)。在上面的例子中,如果动画正在渲染视图的origin.x,视图将结束于100.0。 -
(KRTimingFunction使用相对时间而不是绝对持续时间和绝对当前时间的原因是它最初打算与
UIView.addKeyframeWithRelativeStartTime(_:, relativeDuration:, animations:)
一起使用。此外,原始jQuery函数将绝对持续时间和绝对当前时间转换为相对时间以执行大多数函数。)
异常情况是弹性函数: easeInElastic
、easeOutElastic
和 easeInOutElastic
。这些函数除了上述参数外,还需要绝对的持续时间。
// TimingFunction.(functionName)(rt: Double, b: Double, c: Double, d: Double)
TimingFunction.easeInElastic(rt: 0.5, b: 0.0, c: 100.0, d: 2.0)
d
:绝对持续时间(秒)。如果动画持续时间为2.0秒,应将2.0
作为参数传递。
作者
Josh Woomin Park,[email protected]
许可证
KRTimingFunction项目受MIT许可证保护。更多详情请参阅LICENSE文件。