在IOS开发过程中,我们常常会用到一些动画,合理的使用动画能给我们的应用带来很好的效果,下面我介绍几种很常用的动画的使用
1.基础动画(CABasicAnimation)
CABasicAnimation 的常用属性
Autoreverses
当你设定这个属性为YES时,在它到达目的地之后,动画的返回到开始的值,代替了直接跳转到 开始的值。
Duration
这个参数你已经相当熟悉了。它设定开始值到结束值花费的时间。期间会被速度的属性所影响。
RemovedOnCompletion
这个属性默认为YES,那意味着,在指定的时间段完成后,动画就自动的从层上移除了。这个一般不用。
假如你想要再次用这个动画时,你需要设定这个属性为NO。这样的话,下次你在通过-set方法设定动画的属 性时,它将再次使用你的动画,而非默认的动画。
Speed
默认的值为1.0.这意味着动画播放按照默认的速度。如果你改变这个值为2.0,动画会用2倍的速度播放。 这样的影响就是使持续时间减半。如果你指定的持续时间为6秒,速度为2.0,动画就会播放3秒钟---一半的 持续时间。
BeginTime
这个属性在组动画中很有用。它根据父动画组的持续时间,指定了开始播放动画的时间。默认的是0.0.
TimeOffset
如果一个时间偏移量是被设定,动画不会真正的可见,直到根据父动画组中的执行时间得到的时间都流逝 了。
RepeatCount
默认的是0,意味着动画只会播放一次。如果指定一个无限大的重复次数,使用1e100f。这个不应该和repeatDration属性一块使用。
RepeatDuration
这个属性指定了动画应该被重复多久。动画会一直重复,直到设定的时间流逝完。它不应该和repeatCount一起使用。
下面是参考代码
2.关键帧动画(CAKeyframeAnimation)
关键帧动画的某一个属性按照一系列参数进行一帧一帧的动画
关键帧动画的重要属性:
1. path
这是一个 CGPathRef 对象,默认是空的,当我们创建好CAKeyframeAnimation的实例的时候,可以通过制定一个自己定义的path来让 某一个物体按照这个路径进行动画。这个值默认是nil 当其被设定的时候 values 这个属性就被覆盖
2. values
一个数组,提供了一组关键帧的值, 当使用path的 时候 values的值自动被忽略。
关键帧的动画每一帧的时间可以通过keyTimes设置为不同的值,
参考代码:
3.转场动画(CATransition)
转场动画常用与层之间的切换,系统自带的切换类型有以下几种:
type共有四种类型:
NSString * const kCATransitionFade;//逐渐消失
NSString * const kCATransitionMoveIn;//移入
NSString * const kCATransitionPush;//平移
NSString * const kCATransitionReveal;//显露
subtype:转场动画将要去往的方向。
共有四种类型:
NSString * const kCATransitionFromRight;
NSString * const kCATransitionFromLeft;
NSString * const kCATransitionFromTop;
NSString * const kCATransitionFromBottom;
默认为Nil;
timingFunction 表示动画的减缓方式 有四种
CA_EXTERN NSString * const kCAMediaTimingFunctionLinear(线性)
CA_EXTERN NSString * const kCAMediaTimingFunctionEaseIn(渐入)
CA_EXTERN NSString * const kCAMediaTimingFunctionEaseOut(渐出)
CA_EXTERN NSString * const kCAMediaTimingFunctionEaseInEaseOut(渐入渐出)
CA_EXTERN NSString * const kCAMediaTimingFunctionDefault(默认)
代码示例: