CAAnimation

序言

CAAnimation是一个抽象类,遵循了CAMediaTiming协议和CAAction协议!咱们不要直接使用CAAnimation类,而是使用其子类:app

  • CATransition:提供渐变效果,如推拉push效果,消退fade效果,揭开reveal效果
  • CAAnimationGroup:容许多个动画同时播放
  • CABasicAnimation: 提供了对单一动画的实现
  • CAKeyframeAnimation: 关键桢动画,能够定义动画路线
  • CAPropertyAnimation:属性动画,一般不直接使用,而是使用CABasicAnimation子类

建立对象

咱们看到有一个工厂方法来建立CAAnimation对象,所以,咱们一般都使用这个方法来建立动画:ide

固然不一样类型的子类使用的方法不同,对于继承于CAPropertyAnimation的子类,均可以经过属性路径来建立:动画

遵照了CAMediaTiming协议

这个协议是是用于配置动画的相关属性的,英文部分是官方的注释,中文部分为笔者的理解,下面一一讲解:ui

遵照了CAAction协议

这个协议只有一个方法,咱们能够调用此方法来触发指定的事件,这样接收者就能够接收到代理。this

CAAnimationDelegate代理

CAAnimation为这么个属性:spa

咱们只要指定了代理,就能够实现这两个代理方法:代理

removedOnCompletion属性

当咱们动画完成时,若是但愿动画就自动移除的话,咱们能够设置此属性为YES,默认值为YES。若是咱们想要循环或者执行屡次动画,就将此属性设置为NOcode

timingFunction属性

这个属性是用于指定动画移动的步调是什么样式,好比线性。对象

关于CAMediaTimingFunction类,主要是这向个方法。当建立时,咱们+functionWithName:工厂方法来建立系统已经提供的样式。继承

其中这个name有这几个变量对应的:

若是咱们想要让其移动动画是按贝塞尔曲线的路径行动,那么能够用这两个方法来建立:

相关文章
相关标签/搜索