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