iOS --动画总结 ----二
在iOS --动画总结 ----一中讨论了CAAnimation的派生类CATransition,接下来再讨论下剩下的几个吧!
1.1CABaseAnimation:
有三个property,分别是
@property(nullable, strong) id fromValue;
@property(nullable, strong) id toValue;
@property(nullable, strong) id byValue;
其他的属性都是继承自CAAnimation的,在上篇已经讨论过了.
1.2可以用+ (instancetype)animationWithKeyPath:(nullable NSString *)path来设置动画,path的值分别有:
* transform.scale = 比例轉換
* transform.scale.x = 闊的比例轉換
* transform.scale.y = 高的比例轉換
* transform.rotation.z = 平面圖的旋轉
* opacity = 透明度
* margin
* zPosition
* backgroundColor 背景颜色
* cornerRadius 圆角
* borderWidth
* bounds
* contents
* contentsRect
* cornerRadius
* frame
* hidden
* mask
* masksToBounds
* opacity
* position
* shadowColor
* shadowOffset
* shadowOpacity
* shadowRadius
示例:1.1
1.1动画效果:1.2
1.22.1CAKeyframeAnimation:
property分别有:
@property(nullable, copy) NSArray *values;是整个动画过程中的关键帧点,需要注意的是:起点必须作为values的第一个值
@property(nullable) CGPathRef path;作用于values是相似的,同样是用于指定动画的路径的,需要注意的是:当同时指定values和path时,values将会被覆盖,也就是失效.
@property(nullable, copy) NSArray*keyTimes; 默认是传递的是一个数组对象,用于指定每段子路径的时间,如果没有设置,则默认为每段子路径的时间都是相等的,需要注意的是:该数组第一个元素和最后元素必须为0和1(否则开始的时候将会跳跃式前进,结束的时候达不到预期的结果)
@property(copy) NSString *calculationMode;决定了对象在每个子路径下是跳着走还是匀速走,可供选择的值有
kCAAnimationLinear//线性
constkCAAnimationDiscrete//离散,无中间过程,但keyTimes设置的时间依旧生效,物体跳跃地出现在各个关键帧上
kCAAnimationCubicPaced//平均,keyTimes跟timeFunctions失效
kCAAnimationCubic//平均,同上
kCAAnimationPaced//平均,同上
例如:2.1
1.1
动画效果如下:2.2
2.2CAAnimationGroup
用来保存一组动画,还是先看属性:
animations:用来保存一组动画对象的NSArray,默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间
1.1 1.2