iOS核心動畫詳解(一)

2022-08-09 16:39:19 字數 1468 閱讀 8819

這篇文章主要是針對核心動畫(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 核心動畫的基礎類,不能直接使用,負責動畫執行時間 速度的控制,本...