iOS 动画相关知识

Core Animation,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。在后台移动图层中的内容,  执行完毕后图层本身的位置并没有发生变化,所有的动画都继承自CAAnimation。iOS开发中实现动画的方式也不只是核心动画一种,也有UIView的几种动画。

一、核心动画

       Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。所以,CALayer是核心动画的基础。

       创建动画的流程一般为:

              1、创建动画对象;2、设置动画属性;3、把动画对象添加到某个CALayer 对象上;4、需要停止动画:可以调用 remove 方法移除动画。

       动画类型有:

             1、 属性动画:设定某个属性的值,可以实现属性动画。2、基本动画(CABasicAnimation):设定某个属性从某个值到某个值,实现基本动画。

             3、关键帧动画(CAKeyframeAnimation):设定某个属性的值从某个值到某个值,再到某个值。按照关键值改变的顺序,实现动画。

             4、 组动画(CAAnimationGroup):把所有其他的动画添加到组里面,这样就可以按照添加的动画一次执行。

             5、 转场动画(CATransition):从一个场景转换到另一个场景,系统已经实现好了,不需要我们再去写,按照需求直接调用。

   1、CAAnimation

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

        属性有:1、duration(动画的持续时间,默认是0.25s) 2、repeatCount(动画重复次数) 3、repeatDuration(动画重复时间) 4、removedOnCompletion(默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。) 5、fillMode(决定当前对象在非active时间段的行为.比如动画开始之前,动画结束之后)6、beginTime(可以用来设置动画延迟执行时间)7、timingFunction(速度控制函数,控制动画运行的节奏)

       它还有一个隐式代理delegate,可以监听动画开始   -(void)animationDidStart:(CAAnimation *)anim ,监听动画结束   - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

  2、CAPropertyAnimation(CAAnimation的子类)

       它本身也是一个抽象类,要想创建动画对象,应该使用它的两个子类:CABasicAnimation和CAKeyframeAnimation。

猜你喜欢

转载自www.cnblogs.com/xiaonizicome/p/10978515.html