Cheetah是iOS上用Swift开发的动画实用工具。Cheetah可以使用简单的CADisplayLink运行循环来改变动画属性,因此可以动画化任何属性。
// Create view
let box = UIView(frame:CGRectMake(100,100,50,50))
box.backgroundColor = UIColor.blueColor()
view.addSubview(box)
// Move to 100px right
box.cheetah.move(100, 0).run()
Cheetah提供了几种方法来轻松地动画化属性。您也可以通过扩展CheetahProperty来动画化您自己的属性。
Cheetah会将动画属性分组并一次性执行。
view.cheetah
.move(100, 0)
.rotate(M_PI * 2)
.scale(1.5)
.run()
wait
将在所有放置在其之前的动画完成之前等待。它还可以接收等待秒数以开始下一个动画。
view.cheetah
.move(100, 0).rotate(M_PI)
.wait()
.move(-100, 0).rotate(-M_PI)
.wait(1.0) // <- wait 1 sec to start next animation
.move(0, -20).duration(0.4)
.wait()
.move(0, 20).duration(0.4)
.run()
Cheetah为每个动画属性都有持续时间和延迟。
view.cheetah
.move(100, 0).duration(1.0).delay(1.0)
.rotate(M_PI).duration(2.0)
.wait(1)
.move(-100, 0).duration(0.4)
.run()
持续时间将从放置在之前的属性中复制。
view.cheetah
.duration(0.5)
.move(100, 0) // <- will have 0.5 sec duration
.rotate(M_PI) // <- will have 0.5 sec duration
.run()
要重复动画,请使用repeatCount(count: Int)
。
view.cheetah.rotate(M_PI_2).run().repeat(3)
要无限重复,请使用forever
。
view.cheetah.rotate(M_PI_2).run().forever
Cheetah支持各种缓动函数。您还可以使用四边形贝塞尔点添加自定义缓动。
示例
view.cheetah.move(150, 150).easeInQuad.run()
支持的缓动方程
Cheetah支持具有张力和摩擦参数的弹簧动力学。
示例
view.cheetah
.move(200, 0)
.spring()
.run()
view.cheetah
.move(200, 0)
.spring(tension: 100, friction: 4)
.run()
您可以通过扩展CheetahProperty来自定义属性进行动画。您可以参考CheetahViewProperties.swift和CheetahLayerProperties.swift。
:)