UIView动画相比,Layer动画程序员能控制的东西显然多了很多,在时间控制我们不仅能实现UIViewAnimationOption中CurveEaseInOut/CurveEaseIn/CurveEaseOut/CurveLinear这样控制动画曲线的办法,还有更多的可以自定义的地方
这里我们就来共同来学习一下动画曲线的时间控制
CAMediaTimingFunction
CAMediaTimingFunction有一组预先定义好的用于控制动画曲线的函数
kCAMediaTimingFunctionLinear 线性变化, UIViewAnimationOptionCurveLinear的Layer级别实现
kCAMediaTimingFunctionEaseIn 开始较慢,结束时变化快,UIViewAnimationOption CurveEaseIn的Layer级别实现
kCAMediaTimingFunctionEaseOut 与kCAMediaTimingFunctionEaseIn相反,开始较快,结束时变化慢,UIViewAnimationOptionCurveEaseOut的Layer级别实现
kCAMediaTimingFunctionEaseInEaseOut 开始与结束时变化慢,中间变化较快,UIViewAnimationOptionCurveEaseInOut的Layer级别实现
我们可以将timingFunction作用在CAAnimation(及其子类)对象上
groupAnimation.timingFunction = CAMediaTimingFunction( name: kCAMediaTimingFunctionEaseIn)
CAMediaTimingFunction不仅可以通过字符串初始化为预先定义好的动画曲线,还可以创建自定义的动画曲线
通过添加控制点的方法,创建自定义动画曲线
CAMediaTimingFunction(controlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y)
其他时间控制属性
重复动画
repeatCount 用于控制动画的重复次数
repeatDuration 用于控制总的重复时间
autoreverses 自动恢复原状
改变动画速度
speed 动画速度
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。