CoreAnimation是iOS与OS X平台上负责图形渲染与动画的基础设施。Core Animation可以动画视图和其他的可视元素,为你完成了动画所需的大部分绘帧工作。只需配置少量的动画参数(如开始点位置和结束点的位置)就可实现绚丽的Core Animation动画效果。
Core Animation将大部分实际的绘图任务交给了图形硬件来处理,图形硬件会加速图形渲染的速度。这种自动化的图形加速技术让动画拥有更高的帧率并且更加的平滑,而且不会加重CPU的负担而影响程序的运行速度。
Core Animation自身并不是一个绘图系统。它只是一个负责在硬件上合成和操纵应用内容的基础构件。Core Animation的核心是图层对象,图层对象用于管理和操控你的应用内容。图层将捕获的内容放到一副位图中,图形硬件能够非常容易的操控你的位图。
当我们平时使用UIView动画不能满足需求的时候,可以直接对UIView的内容绘制的layer进行操作,Core Animation是UIview动画底层的实现,是对CALayer进行操作,所以Core Animation操作的对象是CALayer,而不是UIView。
Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程(执行动画的时候还能点击UI其它控件触发别的事件)。
CAAnimation:核心动画的基础类,不能直接使用,负责动画运行时间、速度的控制,本身实现了CAMediaTiming协议
CAPropertyAnimation:属性动画的基类(通过属性进行动画设置,注意是可动画属性),不能直接使用
CABasicAnimation:基本动画,通过属性修改进行动画参数控制,只有初始状态和结束状态
CAKeyframeAnimation:关键帧动画,同样是通过属性进行动画参数控制,但是同基础动画不同的是它可以有多个状态控制
CAAnimationGroup:动画组,动画组是一种组合模式设计,可以通过动画组来进行所有动画行为的统一控制,组中所有动画效果可以并发执行
CATransition:转场动画,主要通过滤镜进行动画效果设置
一、CABasicAnimation
|
|
二、CAKeyframeAnimation
1、做一个抖动效果
2、设置关键帧数组values
3、设置路径path
三、CAAnimationGroup
四、CATransition
附:过渡效果
fade //交叉淡化过渡(不支持过渡方向) kCATransitionFade
push //新视图把旧视图推出去 kCATransitionPush
moveIn //新视图移到旧视图上面 kCATransitionMoveIn
reveal //将旧视图移开,显示下面的新视图 kCATransitionReveal
/**下面几个也是过渡效果,但它们是私有API效果,使用的时候要小心,可能会导致app审核不被通过*/
cube //立方体翻滚效果
oglFlip //上下左右翻转效果
suckEffect //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl //向上翻页效果
pageUnCurl //向下翻页效果
cameraIrisHollowOpen //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)