动画浅析-CAAnimation和CATransition

动画浅析-CAAnimation和CATransition




标签:

caanimation

catransition

ios动画


如今明白了,要作动画。须要用到CATransition类!ios

那就学习一下吧!ide


先贴一个入门代码!布局

[_imgPic setImage:p_w_picpath];// 设置新的图片学习

       

      

      CATransition *animation = [CATransition animation];动画

      [animationsetDuration:1.0];spa

      [animationsetFillMode:kCAFillModeForwards];代理

      [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];code

      [animationsetType:@"rippleEffect"];// rippleEffectorm

      [animationsetSubtype:kCATransitionFromTop];对象

      [_imgPic.layer addAnimation:animation forKey:nil];


实现功能就是,在UIImageView换新图片的时候,作相应的动画效果!好让,UIImageView转化时,不至于太单调!


第一句,就让我很困惑!

CATransition *animation = [CATransition animation];

+ (id)animation方法

建立一个CATransition对象。可是CATransition并无animation方法?!


@interface CATransition :CAAnimation


原来如此,CATransitionCAAnimation的子类


骑驴看唱本吧!


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:被删除。

相关文章
相关标签/搜索