动画浅析-CAAnimation和CATransition
2016-01-27 18:25
507 查看
[_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协议!
an abstract animation class. It provides the basic support for the
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实例。
+ (id)defaultValueForKey:(NSString *)key
根据属性key,返回相应的属性值。
CAAnimation实例方法
- (BOOL)shouldArchiveValueForKey:(NSString *)key
返回指定的属性值是否可以归档。
key:指定的属性。
YES:指明该属性可以被归档;NO:不能被归档。
CAAnimation协议方法
- (void)animationDidStart:(CAAnimation *)theAnimation
动画开始时,执行的方法。
theAnimation:正在执行动画的CAAnimation实例。
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
动画执行完成或者动画为执行被删除时,执行该方法。
theAnimation:完成或者被删除的动画实例
flag:标志该动画是执行完成或者被删除:YES:执行完成;NO:被删除。
只是生硬的翻译了一下CAAnimation类。毕竟该类是其他动画的父类。
先休息!来日再战!
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协议!
CAAnimationis
an abstract animation class. It provides the basic support for the
CAMediaTimingand
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:被删除。
只是生硬的翻译了一下CAAnimation类。毕竟该类是其他动画的父类。
先休息!来日再战!
相关文章推荐
- Gifski:一个跨平台的高质量 GIF 编码器
- 模仿动画的放大缩小容器
- jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
- Android中ViewFlipper的使用及设置动画效果实例详解
- jQuery实现美观的多级动画效果菜单代码
- php判断GIF图片是否为动画的方法
- jQuery实现动画效果circle实例
- HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
- 浅析JavaScript动画
- js排序动画模拟-插入排序
- javascript+HTML5的Canvas实现Lab单车动画效果
- 基于javascript实现漂亮的页面过渡动画效果附源码下载
- js实现按钮颜色渐变动画效果
- 超赞的jQuery图片滑块动画特效代码汇总
- jQuery实现连续动画效果实例分析
- jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
- jQuery实现带有洗牌效果的动画分页实例
- jQuery动画效果相关方法实例分析
- jquery实现先淡出再折叠收起的动画效果
- jQuery实现有动画淡出效果的二级折叠菜单代码