iOS动画程序员iOS Developer

iOS 中使用 Easing Functions 来做动画

2016-05-11  本文已影响187人  mconintet

熟悉 Web 前端的同学想必已经见识了浏览器中通过 easing functions 来实现格式的动画的方式了,比如这个项目 tweenjs,它封装了一些 easing functions 并提供了一些简洁的 APIs。

最近需要在 iOS 中使用 easing functions,于是从 Robert Penner's Easing Functions 那里摘取了各式的 easing functions 并封装成了简单的 API 已在 iOS 中使用。

方法的签名:

static func animate(from: Double, to: Double, duration: Double,
        tween: TweenFunction, setter: MCDAnimatorValueSetter) -> MCDAnimator

使用示例:

let animatorX = MCDAnimator.animate(Double(v.center.x), to: Double(x), duration: 1, tween: TweenBounceEaseOut)
{ (newValue) in
    var c = self.v.center
    c.x = CGFloat(newValue)
    self.v.center = c
}
animatorX.start()

演示:

源码已经托管在 MCDAnimator

如果你想知道每个 easing function 的具体效果的话,可以看看这 Demo

上一篇下一篇

猜你喜欢

热点阅读