CAkeyframeAnimation 是 CAlayer 层下的关键帧动画类,利用该类可以实现类似 UIView 的关键帧动画效果。 CAkeyframeAnimation 是 CApropertyAnimation 的一个子类,与 CABasicAnimation 原理类似,都是通过修改当前 CAlayer 图层的 value 属性来实现动画效果。不同的是 CABasicAnimation 一般只能使用 fromValue、 toValue、 byValue,即只能修改一个 value 值。而 CAkeyframeAnimation 则可以修改一组 vale 值来实现对动画更为精确细腻的控制。
CAkeyframeAnimation 动画属性要点
CAkeyframeAnimation 的使用很简单,只需在合适的位置设置相应的关键帧即可。而选取合适的位置、设置合适的关键帧都离不开 CAkeyframeAnimation 的各种属性。下面就对 CAkeyframeAnimation 的各种常用属性做一个解析。
(1) values:该属性是一个数组类型,数组中的每个元素都描绘了一个关键帧的相关属性。比如描述关键帧位置的动画时, values描述的是位置信息。描述关键帧淡入淡出动画时, values描述的是透明度渐变信息。
(2) keyTimes:默认情况下,关键帧在动画的展示周期内是均匀播放的,但是如果设置了这个属性,就可以精确控制每个关键帧显示的周期。这个属性的取值范围在0~1之间。所以每个关键帧显示的周期为 keyTimes*duration。
(3)path:如果通过 values 属性可以对动画进行比较细腻的控制,那么通过 path 属性则可以对动画的细节部分控制得更为精确。因为通过设置 CGPathRef\CGMutablePathRef 可以让动画按照自己绘制的路径随心所欲地运行。
CAkeyframeAnimation 淡出动画效果
|
CAkeyframeAnimation 任意路径动画
飞机直线飞行
|
CAAnimationGroup 组合动画效果
|
|
本文代码:点击查看