文档介绍:iOS动画篇CAAnimation一、CAAnimation是什么1、官方解释:,createinstancesoftheconcretesubclassesCABasicAnimation,CAKeyframeAnimation,CAAnimationGroup,。遵循着CAMediaTiming和CAAciotn两个协议。要为CoreAnimation图层或SceneKit对象设置动画,请创建其子类CABasicAnimation,CAKeyframeAnimation,CAAnimationGroup或CATransition的实例。CoreAnimation可以用在MacOSX和iOS平台。CoreAnimation的动画执行过程都是在后台操作的,不会阻塞主线程。注:要注意的是,CoreAnimation是直接作用在CALayer上的,并非UIView。当动画之行完毕,控件的frame并没有改变。2、基类CAAnimation的几种属性//动画的节奏/*系统给出的几种类型-kCAMediaTimingFunctionLinear//线性节奏,就是匀速-kCAMediaTimingFunctionEaseIn//淡入,缓慢加速进入,然后匀速-kCAMediaTimingFunctionEaseOut//淡出,匀速,然后缓慢减速移除-kCAMediaTimingFunctionEaseInEaseOut//淡入淡出,结合以上两者-kCAMediaTimingFunctionDefault//默认效果*/***@property(nullable,strong)CAMediaTimingFunction*timingFunction;,1,2,3,4,5,6,7,8,9,10//动画代理,注意该代理使用的是strong,注意释放***@property(nullable,strong)id<CAAnimationDelegate>delegate;//开始和结束的代理//开始-(void)animationDidStart:(CAAnimation*)anim;//结束、flag表示动画正常结束还是被打断移除-(void)animationDidStop:(CAAnimation*)animfinished:(BOOL)flag;,1,2,3,4,5,6,7//是否在播放完成后移除,配合fillMode=kCAFillModeForwards可以保留最终的播放效果***@property(getter=pletion)pletion;,1,23、CAMediaTiming协议中的相关属性//动画开始时间(滞后时间)***@propertyCFTimeIntervalbeginTime;//动画持续时间***@propertyCFTimeIntervalduration;//速度例:如果speed是2,duration是3,,动画播放完成。***@propertyfloatspeed;//动画开始播放偏移时刻***@propertyCFTimeIntervaltimeOffset;//重复次数***@propertyfloatrepeatCount;//重复时间***@propertyCFTimeIntervalrepeatDuration;//自动执行相反动画***@propertyBOOLautoreverses;//播放结束后的状态***@property(copy)NSString*fillMode;,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,164、使用步骤注:CAAnimation是一个抽象类,想要实现动画效果需要使用它的子类CABasicAnimation,CAKeyframeAnimation,CAAnimationGroup或CATransition。使用步骤:<QuartzCore/>(iOS7不需要);,并设置一些动画相关属性;:forKey::方法可以停止CALaye