動畫淺析-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:被刪除。

相關文章
相關標籤/搜索