动画

  • 动画是一个app的亮点.
UIView动画
  • Layer类
1.CAEmitterLayer          //粒子发射器
2.CAGradientLayer         //渐变
3.CAEAGLLayer             //可以通过OpenGL ES绘制界面
4.CAReplicatorLayer       // 对sublayer进行复制和属性的偏移
5.CAScrollLayer           // 支持其上管理的多个子层进行滑动
6.CAShapeLayer            // 自定义layer层形状
7.CATextLayer             //可以通过字符串进行文字的绘制
8.CATiledLayer            //类似瓦片视图,可以将绘制分区域进行,常用于一张大的图片的分不分绘制
9.CATransformLayer        //构建一些3D效果的图层

layer的渲染层与模型层:
1、presentationLayer 
      - Presentation Tree-对应在动画的过程中,CALayer的属性

2、modelLayer
      - Model Tree-对应CALayer的实际属性
CA动画

动画_第1张图片
GI-ZJ6BE%8-RKI1JDACEH78.jpg
CGAffineTransform 是用于2D层面的,操作 NSView, UIView或者其他 2D Core Graphics 元素的.

CATransform3D 是 Core Animation的结构体,是用来做更复杂的关于 CALayer 的3D操作.CATransform3D 有着与 OpenGL 模型视图矩阵相同的内部结构,原因在于 Core Animation 是建立在 OpenGL 之上的, CALayer是 OpenGL 结构的一种封装.

CATransaction 针对的CALayer,UIView对应的layer不可以。
UIDynamic动画(仿真物理行为,如重力,弹性碰撞):

1.吸附行为(UIAttachmentBehavior):有一个对象UIAttachmentBehavior,该对象用来指定两个动力项(项或点)之间的连接,当一个项或者点移动时,吸附的项也随之移动。当然,这个连接并不是完全是静态的(static),吸附的项有两个属性damping(阻尼)和oscillation(震荡),这两个属性决定了吸附项的行为是如何随时间而变化的。
2.碰撞行为(UICollisionBehavior):通过对象UICollisionBehavior指定一个边界,并且让各个动力项,在该边界内参与碰撞。UICollisionBehavior对象还可以指定这些动力项适当的回应碰撞。
3.重力行为(UIGravityBehavior):通过对象UIGravityBehavior给动力项指定一个重力矢量,具有重力矢量的动力项,会在重力矢量的方向上一直加速,直到与别的动力项产生了冲突或者,遇到了边界。
4.推动行为(UIPushBehavior):通过对象UIPushBehavior给动力项指定一个持续的或者瞬时的力(force vector)。
5.捕捉行为(UISnapBehavior):通过对象UISnapBehavior给动力项指定一个捕捉点。动力项会根据配置的效果,来抓住这一捕捉点。
当动力行为被添加到animator(UIDynamicAnimator类的实例对象)时,动力行为就被激活。animator为动力行为的执行提供了上下文。动力项可以有多个行为,只不过所有这些行为都必须添加到相同的animator中。
参考:
http://www.it165.net/pro/html/201501/32903.html
http://my.oschina.net/u/2340880/blog/536048
http://www.jianshu.com/p/f729f4a9b8e7
http://blog.csdn.net/lengshengren/article/details/12000649

你可能感兴趣的:(动画)