五 iOS之 Core Animation(核心动画)

核心动画继承结构

五 iOS之 Core Animation(核心动画)

开发步骤

1.首先得有CALayer

2.初始化一个CAAnimation对象,并设置一些动画相关属性

3.通过调用CALayer的addAnimation:forKey:方法,增加CAAnimation对象到CALayer中,这样就能开始执行动画了

4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

CAAnimation 简介

  • 是所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类

  • 属性说明:(加粗字体代表来自CAMediaTiming协议的属性)

    • duration:动画的持续时间

    • repeatCount:重复次数,无限循环可以设置HUGE_VALF或者MAXFLOAT

    • repeatDuration:重复时间

    • removedOnCompletion:默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置
      fillMode为kCAFillModeForwards

    • fillMode:决定当前对象在非active时间段的行为。比如动画开始之前或者动画结束之后

    • beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间

    • timingFunction:速度控制函数,控制动画运行的节奏
      delegate:动画代理

CAPropertyAnimation

  • 是CAAnimation的子类,也是个抽象类,要想创建动画对象,应该使用它的两个子类:
    • CABasicAnimation
    • CAKeyframeAnimation