標籤:
使用CoreAnimation一般分為三個部分:1.建立執行動畫的CALayer 2.建立動畫 3.CALayer 添加Animation
CoreAnimation的繼承關係:
| CAAnimation |
| 屬性 |
描述 |
| timingFunction |
時間函數
kCAMediaTimingFunctionLinear線性
kCAMediaTimingFunctionEaseIn淡入
kCAMediaTimingFunctionEaseOut淡出
kCAMediaTimingFunctionEaseInEaseOut淡入淡出
kCAMediaTimingFunctionDefault預設
通過控制點建立一個時間函數: - (id)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y;- (id)initWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y; |
| delegate |
代理 |
| removedOnCompletion |
是否在動畫完成將其移除 |
| 方法 |
描述 |
|
+(instancetype)animation |
建立CAAnimation對象 |
|
+(id)defaultValueForKey:(NSString *)key; |
根據屬性key,返回相應的屬性值 |
|
-(BOOL)shouldArchiveValueForKey:(NSString *)key; |
返回指定的屬性值是否可以歸檔 |
| 協議 |
描述 |
| -(void)animationDidStart:(CAAnimation *)anim |
animation開始執行 |
| -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag; |
animation結束或者被移除是回調,只用在動畫結束的情況下,flag才是YES |
| CAMediaTiming |
| fillMode |
決定了當前對象非active時間段的行為,比如動畫之前,動畫之後(RemoveOnCompletion必須設成NO)KCAFillModeRemoved:這個是預設值,動畫開始前,動畫結束後,動畫對layer都沒有影響,動畫結束後,layer會恢複到之前狀態KCAFillModeForwards:動畫結束後,layer會一直保持動畫最後的狀態KCAFillModeBackwards:在動畫開始前,只要將動畫加入一個layer,layer便立即進入動畫的初始化狀態並等待動畫開始KCAFFillModeBoth:KCAFillModeForwards和KCAFillModeBackwards的結合,動畫開始之前,Layer處於動畫初始狀態,動畫結束後Layer保持動畫最後狀態 |
| beginTime |
起始時間 |
| duration |
時間長度 |
| speed |
速度 |
| timeOffset |
時間位移 |
| repeatCount |
重複次數 |
| repeatDuration |
重複時間長度 |
| autoReverses |
是否在動畫結束後回到開始值 |
| CATransion(系統動畫) |
| 屬性 |
描述 |
| type |
動畫類型:
kCATransitionFade
kCATransitionMoveIn
kCATransitionPush
kCATransitionReveal |
| subtype |
動畫的方向:
kCATransitionFromRight
kCATransitionFromLeft
kCATransitionFromTop
kCATransitionFromBottom |
| startProgress |
動畫起始位置,預設為0,範圍0~1 |
| endProgress |
動畫結束位置,預設為0,範圍1~0 |
| filter |
過度對象,設定後type和subtype將被忽略 |
| |
|
| CAPropertyAnimation(屬性動畫) |
| 屬性 |
描述 |
| keyPath |
描述animation的類型:
|
| additive |
|
| cumulative |
|
| valueFunction |
|
| 方法 |
描述 |
|
+(instancetype)animationWithKeyPath:(NSString *)path |
建立動畫 |
| |
|
| CABasicAnimation(基礎動畫) |
| 屬性 |
描述 |
| fromValue |
開始值 |
| toValue |
結束值 |
| byValue |
相對值 |
| FromValue、ToValue、ByValue不能同時多餘兩個為空白 |
| CAKeyframeAnimation(主要畫面格動畫) |
| 屬性 |
描述 |
|
values |
裡面的元素稱為“主要畫面格”。動畫對象會在指定的時間裡,顯示完values數組裡的每一幀 |
|
path |
可以設定一個CGPathRef/CGMutablePathRef,讓層跟著路徑移動。path只對CALayer的anchorPoint和position起作用,如果設定了Path那麼Value將被忽略 |
|
keyTimes |
為對應的主要畫面格指定對應的時間點,取值範圍是0~1,keyTimes中的每一個時間值都對應Values中的每一幀,當keyTimes沒有設定的時候,各個主要畫面格的時間平分,比如傳{0,0.1,0.6,0.7,1.0},首尾必須是0,1,tAB= 0.1-0,tCB = 0.6-0.1,tDC = 0.7-0.1 |
|
timingFunctions |
時間函數數組 |
|
calculationMode |
計算模式,其主要針對的是每一幀的內容為一個座標點的情況,也就是對anchorPoint和position進行動畫。決定了物體在每個子路徑下是跳著走還是勻速走
kCAAnimationLinear:線性,預設,主要畫面格為座標點的時候,主要畫面格之間直接直線項鏈進行插值計算
kCAAnimationDiscrete:離散,無中間過程,不進行插
kCAAnimationPaced:平均,使動畫均勻進行
kCAAnimationCubic:對主要畫面格為座標點的主要畫面格進行圓滑的曲線相連後進行插值計算
kCAAnimationCubicPaced:在KCAAnimationCubic的基礎上使得動畫運行變動均勻 |
|
tensionValues |
|
|
continuityValues |
|
|
biasValues |
|
|
rotationMode |
kCAAnimationRotateAuto
kCAAnimationRotateAutoReverse |
| |
|
| CASpringAnimation |
| 屬性 |
描述 |
| mass |
品質,影響圖層運動時的彈簧慣性,品質越大,彈簧展開和壓縮的幅度越大 |
| stiffness |
剛度係數(勁度係數/彈性係數),剛度係數越大,形變產生的力就越大,運動越快 |
| damping |
阻尼係數,阻止彈簧伸縮的係數,阻尼係數越大,停止越快 |
| initialVelocity |
初始速率,動畫視圖的初始速度大小
速率為正數時,速度方向與運動方向一致,速率為負數時,速度方向與運動方向相反 |
| settlingDuration |
結算時間 返回彈簧動畫到停止時的估算時間,根據當前的動畫參數估算
通常彈簧動畫的時間使用結算時間比較準確 |
| |
|
| CAAnimationGroup |
| 屬性 |
描述 |
| animations |
動畫數組 |
| |
|
CoreAnimation方法匯總