這篇文章主要是針對核心動畫(core animation)的講解,不涉及uiview的動畫。因為內容較多,這篇文章會分為幾個章節來進行介紹。本文主要是介紹核心動畫的幾個類之間的關係和caanimation基本屬性、方法、協議,之後會陸續推出其子類用法。
核心動畫(core animation)是quartzcore框架下一組功能強大的api,其動畫基於layer層,通過對一些屬性自定義值即可完成動畫,非常方便而且簡單。base類是caanimation。核心動畫層在iosui渲染中的位置,如圖1.1。
圖1.1
從圖1.1可以看出,core animation位於uikit的下一層,相比uiview可以製作更加複雜的動畫。在往下看,opengl es/opengl和core graphics更加底層,以後有機會再介紹這一層的內容。graphics hardware已經和硬體接軌了,不談。
核心動畫是乙個類簇,base類是caaimation,不能直接使用,要例項化其子類進行動畫製作。其中capropertyanimation用的不多,常用的類:cabasicanimation、catransition、cabasicanimation、cakeyframeanimation,caspringanimation是ios9之後加入的,可實現彈簧效果。如圖1.2。
圖1.2
這個屬性用來設定某一段時間內,動畫執行的方式
kcamediatimingfunctionlinear
//線性,勻速
kcamediatimingfunctioneasein
//漸進,動畫緩慢進入,然後加速離開
kcamediatimingfunctioneaseout
//漸出,動畫加速進入,然後緩慢離開
kcamediatimingfunctioneaseineaseout
//漸進漸出,動畫緩慢的進入,中間加速,然後減速的到達目的地。這個是預設的動畫行為。
kcamediatimingfunctiondefault
//kcamediatimingfunctioneaseineaseout
動畫執行完成後是否移除動畫,如果設為yes,動畫執行完成後動畫會自動移除,此時view會回到初始狀態。所以如果想要動畫執行完成後要view保留最後的狀態,removedoncompletion要設定成no。
動畫**,so easy
(1)效能強大,使用硬體加速,可以同時向多個圖層新增不同的動畫效果。
(2)介面易用,只需要少量的**就可以實現複雜的動畫效果。
(3)執行在後台執行緒中,在動畫過程中可以響應互動事件(uiview動畫預設動畫過程中
不響應互動事件)。
(4)動畫多元化,可組合動畫,新增多段式動畫。
IOS核心動畫
void basicanimation calayer layer animation.duration 2 animation.delegate self animation.removedoncompletion no animation.fillmode kcafillmodeforwards...
IOS開發核心動畫篇 核心動畫簡介
ios開發ui篇 核心動畫簡介 一 簡單介紹 core animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理api,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的 就可以實現非常強大的功能。core animation是跨平台的,可以用在mac os x和io...
iOS核心動畫 基礎動畫
核心動畫 在ios中核心動畫分為幾類 基礎動畫 cabasicanimation 關鍵幀動畫 cakeyframeanimation 動畫組 caanimationgroup 轉場動畫 catransition caanimation 核心動畫的基礎類,不能直接使用,負責動畫執行時間 速度的控制,本...