博主:最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家学习。
原帖地址:http://www.objectivec-iphone.com/animation/CoreAnimation/CABasicAnimation.html
本文为博主翻译,若需转载,请注明出处:http://blog.csdn.net/iosevanhuang/article/details/14488239
CABasicAnimation类的使用方式就是基本的关键帧动画。
所谓关键帧动画,就是将Layer的属性作为KeyPath来注册,指定动画的起始帧和结束帧,然后自动计算和实现中间的过渡动画的一种动画方式。
将"QuartzCore.framework"这个库添加到项目中。并且在需要使用CABaseAnimation类的地方import头文件。
使用"animationWithKeyPath:"方法进行CABasicAnimation的实例化,并指定Layer的属性作为关键路径来注册。
设定动画的属性。以下是属性及其对应的说明:
属性 | 说明 |
---|---|
duration | 动画时长(秒为单位)(注:此处与原文有出入) |
repeatCount | 重复次数。永久重复的话设置为HUGE_VALF。 |
beginTime | 指定动画开始时间。从开始指定延迟几秒执行的话,请设置为 「CACurrentMediaTime() + 秒数」的形式。 |
timingFunction | 设定动画的速度变化 |
autoreverses | 动画结束时是否执行逆动画 |
属性 | 说明 |
---|---|
fromValue | 开始值 |
toValue | 终了值(絶対値) |
byValue | 终了值(相对值) |
为Layer添加设置完成的动画,可以给Key指定任意名字。
用CABasicAnimation执行动画,在动画结束后会回归动画开始前的状态。想要解决的话,必须设置“removedOnCompletion”和“fillMode”这两个属性。
实际上CABasicAnimation有很多种使用方法,以下将一一列举。
使用CAAnimationGroup类进行复数动画的组合。代码如下:
博主:设定委托对象,实现委托方法,如下:
CABasicAnimation正在进行动画的时候,点击了Home按钮后再回到app的时候,动画会被清空。
使用CABasicAnimation实现关键帧动画的示例程序如下:
Objective-C的示例程序的执行结果如下:
控制台输出如下: