现在明白了,要做动画。需要用到
CATransition类!
那就学习一下吧!
先贴一个入门代码!
[_imgPic setImage:image];// 设置新的图片
CATransition *animation = [CATransition animation];
[animation setDuration:1.0];
[animation setFillMode:kCAFillModeForwards];
[animation setTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseOut]];
[animation setType:@"rippleEffect"];// rippleEffect
[animation setSubtype:kCATransitionFromTop];
[_imgPic.layer addAnimation:animation forKey:nil];
实现功能就是,在
UIImageView换新图片的时候,做相应的动画效果!好让,
UIImageView转化时,不至于太单调!
第一句,就让我很困惑!
CATransition
*animation = [
CATransition
animation
];
+ (id)animation方法
创建一个
CATransition对象。但是
CATransition并没有
animation方法?!
@interface CATransition : CAAnimation
原来如此,
CATransition是
CAAnimation的子类
骑驴看唱本吧!
CAAnimation类
CAAnimation类,是一个抽象类。遵循CAMediaTiming协议和CAAction协议!
CAAnimation
is an abstract animation class. It provides the basic support for the CAMediaTiming
and CAAction
protocols.
CAMediaTiming协议
可以调整时间,包括持续时间,速度,重复次数。
CAAction协议
可以通过响应动作的方式来显示动画。
CAAnimation有很多派生类
CATransition 提供渐变效果:(推拉push效果,消退fade效果,揭开reveal效果)。
CAAnimationGroup 允许多个动画同时播放。
CABasicAnimation 提供了对单一动画的实现。
CAKeyframeAnimation 关键桢动画,可以定义行动路线。
CAConstraint 约束类,在布局管理器类中用它来设置属性。
CAConstraintLayoutManager 约束布局管理器,是用来将多个CALayer进行布局的.各个CALayer是通过名称来区分,而布局属性是通过CAConstraint来设置的。
CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务。
CAAnimation属性
@property(retain) id delegate
为CAAnimation设置代理。默认为nil。
注意:一个CAAnimation实例,不能设置delegate为self。会引起循环引用。
@property(getter=isRemovedOnCompletion) BOOL removedOnCompletion
设置是否动画完成后,动画效果从设置的layer上移除。默认为YES。
timingFunction
设置动画的“时机”效果。就是动画自身的“节奏”:比如:开始快,结束时变慢;开始慢,结束时变快;匀速;等,在动画过程中的“时机”效果。
animation
+ (id)animation
创建并返回一个CAAnimation实例。
+ (id)defaultValueForKey:(NSString *)key
根据属性key,返回相应的属性值。
CAAnimation实例方法
- (BOOL)shouldArchiveValueForKey:(NSString *)key
返回指定的属性值是否可以归档。
key:指定的属性。
YES:指明该属性可以被归档;NO:不能被归档。
CAAnimation协议方法
- (void)animationDidStart:(CAAnimation *)theAnimation
动画开始时,执行的方法。
theAnimation:正在执行动画的CAAnimation实例。
animationDidStop:finished
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
动画执行完成或者动画为执行被删除时,执行该方法。
theAnimation:完成或者被删除的动画实例
flag:标志该动画是执行完成或者被删除:YES:执行完成;NO:被删除。
只是生硬的翻译了一下
CAAnimation类。毕竟该类是其他动画的父类。
先休息!来日再战!
转载自:http://blog.csdn.net/mad2man/article/details/17260887