动画有两种基本类别:
视图动画:当你想给用户界面一个视觉提醒时,主要使用这个动画。
层动画: 这个在应用内容和功能性上普遍使用。层不能接受像点击、按下等事件。
在核心动画中,时间无处不在。比如当需要一个层有动画属性时,比如动画时长、如何动、是否需要返回到初始值等等。这些值不能被层本身指派,而是在CAAnimation这个对象或者它的子类中,CABasicAnimation、CAKeyframeAnimation中指派的。
在MVC设计模式中,层是一个模型对象,而不是一个视图对象。层包含了如下属性:位置、轮廓、颜色等等。
通过调用addAnimation:forKeyPath这个方法,来增加动画对象到层中,这样就可以触发动画。
通过调用removeAnimation:froKeyPath这个方法,来停止层中的动画,不过,在默认情况下,动画运行完毕就会自动执行这一行为。
动画步调:
在核心动画中,默认的动画是渐进渐出的,意思就是动画开始的时候慢,然后在中间加速,之后当靠近目的地的时候再减速。这个渐进的概念让动画更接近自然平滑,然而一个线性的动画更多的是一个静态的感觉,因为这些属性的变化都是恒定的。
核心动画的步调功能主要包括:
Linear(线性):变化是恒定的,相当于一个静态的感觉。
Ease in(渐进):动画缓慢进入,然后加速离开。
Ease out(渐出):动画全速进入,然后减速到达目的地。
Ease in out(渐进渐出):动画缓慢进入,中间加速,然后减速到达目的地。这个是默认的动画行为。