一、簡單介紹
是capropertyanimation的子類,跟cabasicanimation的差別是:cabasicanimation隻能從一個數值(fromvalue)變到另一個數值(tovalue),而cakeyframeanimation會使用一個nsarray儲存這些數值
屬性解析:
values:就是上述的nsarray對象。裡面的元素稱為”關鍵幀”(keyframe)。動畫對象會在指定的時間(duration)内,依次顯示values數組中的每一個關鍵幀
path:可以設定一個cgpathref\cgmutablepathref,讓層跟着路徑移動。path隻對calayer的anchorpoint和position起作用。如果你設定了path,那麼values将被忽略
keytimes:可以為對應的關鍵幀指定對應的時間點,其取值範圍為0到1.0,keytimes中的每一個時間值都對應values中的每一幀.當keytimes沒有設定的時候,各個關鍵幀的時間是平分的
說明:cabasicanimation可看做是最多隻有2個關鍵幀的cakeyframeanimation
二、代碼示例
第一種方式:
代碼:


說明:這個項目在storyboard中拖入了一個view,并和控制器中的custom進行了關聯。
效果和列印結果:
補充:設定動畫的節奏
第二種方式(使用path)讓layer在指定的路徑上移動(畫圓):


說明:可以通過path屬性,讓layer在指定的軌迹上運動。
停止動畫:


點選停止動畫,程式内部會調用 [self.customview.layer removeanimationforkey:@"wendingding"];停止self.customview.layer上名稱标示為wendingding的動畫。
三、圖示抖動
代碼示例:


說明:圖示向左向右偏轉一個弧度(4),産生抖動的視覺效果。
程式界面: