標籤: caanimationcatransitionios動畫 |
|
如今明白了,要作動畫。須要用到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
原來如此,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屬性
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:被刪除。