Core Animation 核心動畫

pchotfan 8年前發布 | 4K 次閱讀 iOS開發 移動開發 Core Animation

Core Animation翻譯為核心動畫,它是一組非常強大的動畫處理的API,使用它能出很多好看的效果,代碼量也比較少,它可以使用在Mac OS X和iOS平臺并且在執行過程都是在后臺操作的,不會阻塞主線程, 要注意的是 ,Core Animation是直接作用在CALayer上的,并非UIView。

下圖是核心動畫的集成結構 紅色代表遵守的協議 紫色代表繼承哪一個類

CAAnimation是所有動畫類的父類,但是它不能直接使用,應該使用它的子類

常見屬性有

1> duration:動畫的持續時間

2> repeatCount:動畫的重復次數

3> timingFunction:控制動畫運行的節奏

timingFunction可選的值有:

kCAMediaTimingFunctionLinear(線性):勻速,給你一個相對靜態的感覺

kCAMediaTimingFunctionEaseIn(漸進):動畫緩慢進入,然后加速離開

kCAMediaTimingFunctionEaseOut(漸出):動畫全速進入,然后減速的到達目的地

kCAMediaTimingFunctionEaseInEaseOut(漸進漸出):動畫緩慢的進入,中間加速,然后減速的到達目的地。這個是默認的動畫行為。

4> delegate:動畫代理,用來監聽動畫的執行過程

上面介紹的所有屬性都是屬于CAAnimation的,所以CAAnimation的所有子類都能使用它們。

關于CAPropertyAnimation

CAPropertyAnimation是CAAnimation的子類,ye不能直接使用,要想創建動畫對象,應該使用它的兩個子類:CABasicAnimation和CAKeyframeAnimation

它有個NSString類型的keyPath屬性,你可以指定CALayer的某個屬性名為keyPath,并且對CALayer的這個屬性的值進行修改,達到相應的動畫效果。比如,指定@"position"為keyPath,就會修改CALayer的position屬性的值,以達到平移的動畫效果

因此,初始化好CAPropertyAnimation的子類對象后,必須先設置keyPath,搞清楚要修改的是CALayer的哪個屬性,執行的是怎樣的動畫

 

 

來自:http://www.jianshu.com/p/d4d809fa38d2

 

 本文由用戶 pchotfan 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!