时间的概念
图层时间
动画的发生是需要持续一段时间的,所以计时对整个概念来说至关重要
CAMediaTiming 协议
什么是CAMediaTiming协议?
CAMediaTiming协议定义了在一段动画内用来控制逝去时间的属性的集合, CALayer和CAAnimation都实 现了这个协议,所以时间可以被任意基于一个图层或者一段动画的类控制
CAMdeiaTiming的属性
```
duration: 一次迭代指定的时间
repeatCount: 动画重复的迭代次数
repeatDuration: 让动画重复一个指定的时间
autoreverses: 在每次间隔交替循环过程中自动回放
beginTime : 指定了动画开始之前的延迟时间
speed: 默认为0
timeOffset: 只是让动画快进到某一个点
fillMode:
removeOnCompletion:
```
缓冲
Core Animation使用缓冲来使动画移动更平滑更自然,而不是看起来的那种机械和人工,在这一章我们将要研究如 何对你的动画控制和自定义缓冲曲线
现实生活中的任何一个物体都会在运动中加速或者减速。那么我们如何在动画中实现这种加速度呢?
一种方法是使用物理引擎来对运动物体的摩擦和动量来建模,然而这会使得计算过于复杂。我们称这种类型的方程为缓冲函数,幸运的是,Core Animation内嵌了一系列标准函数提供给我们使用
CAMediaTimingFunction类
kCAMediaTimingFunctionLinear
kCAMediaTimingFunctionEaseIn
kCAMediaTimingFunctionEaseOut
kCAMediaTimingFunctionEaseInEaseOut
kCAMediaTimingFunctionDefault

注意这里都是显示动画使用的

自定义缓冲函数

CAMediaTimingFunction函数的主要原则在于它把输入的时间转换成起点和终点 之间成比例的改变