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

iOS --动画总结 ----二_第1张图片
1.1

动画效果:1.2

iOS --动画总结 ----二_第2张图片
1.2

2.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

iOS --动画总结 ----二_第3张图片

1.1

动画效果如下:2.2

iOS --动画总结 ----二_第4张图片

2.2CAAnimationGroup

    用来保存一组动画,还是先看属性:

        animations:用来保存一组动画对象的NSArray,默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间

iOS --动画总结 ----二_第5张图片
1.1
iOS --动画总结 ----二_第6张图片
1.2

    这是demo详情  


你可能感兴趣的:(iOS --动画总结 ----二)