动画浅析-CAAnimation和CATransition

来源:互联网 发布:个性围巾 知乎 编辑:程序博客网 时间:2024/05/25 20:00
CAAnimation

CAAnimation类,是一个抽象类。遵循CAMediaTiming协议和CAAction协议!

CAAnimation is an abstract animation class. It provides the basic support for the CAMediaTiming and CAActionprotocols.

CAMediaTiming协议

可以调整时间,包括持续时间,速度,重复次数。

CAAction协议

可以通过响应动作的方式来显示动画。


CAAnimation有很多派生类

 

CATransition 提供渐变效果:(推拉push效果,消退fade效果,揭开reveal效果)。

 

CAAnimationGroup 允许多个动画同时播放。

 

CABasicAnimation 提供了对单一动画的实现。

 

CAKeyframeAnimation 关键桢动画,可以定义行动路线。

 

CAConstraint 约束类,在布局管理器类中用它来设置属性。

 

CAConstraintLayoutManager 约束布局管理器,是用来将多个CALayer进行布局的.各个CALayer是通过名称来区分,而布局属性是通过CAConstraint来设置的。

 

CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务。

 CAAnimation属性

delegate

@property(retain) id delegate
为CAAnimation设置代理。默认为nil。
注意:一个CAAnimation实例,不能设置delegate为self。会引起循环引用。

removedOnCompletion

@property(getter=isRemovedOnCompletion) BOOL removedOnCompletion
设置是否动画完成后,动画效果从设置的layer上移除。默认为YES。

timingFunction
@property(retain) CAMediaTimingFunction *timingFunction
设置动画的“时机”效果。就是动画自身的“节奏”:比如:开始快,结束时变慢;开始慢,结束时变快;匀速;等,在动画过程中的“时机”效果。

animation
(id)animation
创建并返回一个CAAnimation实例。

defaultValueForKey

(id)defaultValueForKey:(NSString *)key
根据属性key,返回相应的属性值。

CAAnimation实例方法

shouldArchiveValueForKey

(BOOL)shouldArchiveValueForKey:(NSString *)key
返回指定的属性值是否可以归档。
key:指定的属性。
YES:指明该属性可以被归档;NO:不能被归档。

CAAnimation协议方法

animationDidStart

(void)animationDidStart:(CAAnimation *)theAnimation
动画开始时,执行的方法。
theAnimation:正在执行动画的CAAnimation实例。

animationDidStop:finished

(void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
动画执行完成或者动画为执行被删除时,执行该方法。
theAnimation:完成或者被删除的动画实例
flag:标志该动画是执行完成或者被删除:YES:执行完成;NO:被删除。

转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101brzh.html

0 0
原创粉丝点击