https://www.jianshu.com/p/f96fe068dff4
1、系统自带的动画库:
CALayer 和 Core Animation
CALayer是动画的载体,动画是加在 CALayer 上显示的,所以我们需要先了解一下。
UIView:UIKit框架,用户交互使用。
CALayer:QuartzCore框架,不能响应事件,为了内容展示和动画操作。
1.1、
CALayer子类:
CAShapeLayer:用来根据路径绘制矢量图形。
CATextLayer:绘制文字信息。
CATransformLayer:使用单独的图层创建3D图形。
CAGradientLayer:绘制线性渐变色。
CAReplicatorLayer:高效地创建多个相似的图层并施加相似的效果或动画。
CAScrollLayer:没有交互效果的滚动图层,没有滚动边界,可以任意滚动上面的图层内容。
CATiledLayer:将大图裁剪成多个小图以提高内存和性能。
CAEmitterLayer:各种炫酷的粒子效果。
CAEAGLLayer:用来显示任意的OpenGL图形。
AVPlayerLayer:用来播放视频。
CALayer的用处很大的,而且它并没有为所有可能的场景进行优化。为了获得Core Animation最好的性能,你需要为你的工作选对正确的工具。
1.2、
Core Animation是 iOS 和 OS X 平台上负责图形渲染与动画的基础框架。
CAAnimation:核心动画的基础类。不能直接使用,负责动画运行时间、速度的控制,本身实现了CAMediaTiming协议。
CAPropertyAnimation:属性动画的基类。通过属性进行动画设置,注意是可动画属性,不能直接使用。
CABasicAnimation:基础动画。通过属性修改进行动画参数控制,只有初始状态和结束状态。
CAKeyframeAnimation:关键帧动画。同样是通过属性进行动画参数控制,但是同基础动画不同的是它可以有多个状态控制。
基础动画、关键帧动画都属于属性动画,就是通过修改属性值产生动画效果,开发人员只需要设置初始值和结束值,中间的过程动画(又叫“补间动画”)由系统自动计算产生。和基础动画不同的是关键帧动画可以设置多个属性值,每两个属性中间的补间动画由系统自动完成,因此从这个角度而言基础动画又可以看成是有两个关键帧的关键帧动画。
CAAnimationGroup:动画组。动画组是一种组合模式设计,可以通过动画组来进行所有动画行为的统一控制,组中所有动画效果可以并发执行。
CATransition:转场动画。就是从一个场景以动画的形式过渡到另一个场景。
2、Facebook POP
除了 苹果系统自带的Core Animation动画,还有很多第三方封装动画,比较普遍的就是 Facebook 发布的POP动画了。POP 是2014年发布的,是个相当成熟且久经考验的框架。