CoreAnimation方法匯總

來源:互聯網
上載者:User

標籤:

使用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方法匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.