版本記錄
| 版本號 | 時(shí)間 |
|---|---|
| V1.0 | 2017.09.20 |
前言
app中好的炫的動(dòng)畫可以讓用戶耳目一新,為產(chǎn)品增色不少,關(guān)于動(dòng)畫的實(shí)現(xiàn)我們可以用基本動(dòng)畫、關(guān)鍵幀動(dòng)畫、序列幀動(dòng)畫以及基于CoreGraphic的動(dòng)畫等等,接下來這幾篇我就介紹下我可以想到的幾種動(dòng)畫繪制方法。具體Demo示例已開源到Github —— 刀客傳奇,感興趣的可以看我寫的另外幾篇。
1. 實(shí)現(xiàn)動(dòng)畫方式深度解析(一) —— 播放GIF動(dòng)畫(一)
2. 實(shí)現(xiàn)動(dòng)畫方式深度解析(二) —— 播放GIF動(dòng)畫之框架FLAnimatedImage的使用(二)
3. 實(shí)現(xiàn)動(dòng)畫方式深度解析(三) —— 播放序列幀動(dòng)畫(一)
框架基本結(jié)構(gòu)
1. OC中所有系統(tǒng)框架及分類
說到框架這里需要外延一下子,大家對OC中的有哪些框架以及具體可以分為幾類清楚嗎?下面我們就看一下OC中框架的基本結(jié)構(gòu)。



看完上面幾個(gè)圖示,大家應(yīng)該會(huì)感覺順了很多。
2. QuartzCore框架
大家知道利用CoreAnimation可以實(shí)現(xiàn)動(dòng)畫,但是CoreAnimation并不是一個(gè)單獨(dú)的框架,它是屬于QuartzCore框架里面的。下面我們就看一下這個(gè)框架的結(jié)構(gòu)和主要的類。


框架的主要功能模塊分類
1. Layer Basics
-
- 該對象可以管理基于圖像的內(nèi)容,同時(shí)允許你在那個(gè)內(nèi)容上執(zhí)行動(dòng)畫。
-
- 你的app可以實(shí)現(xiàn)的與layer相關(guān)事件響應(yīng)。
-
- 在兩個(gè)layers之間的單個(gè)的布局(layout)。
-
- 允許對象管理layer及其子layer的布局的方法。
-
- 提供基于constraint layout管理者對象。
-
- 一個(gè)接口,允許對象響應(yīng)CALayer觸發(fā)的行為。
2. Drawing Text, Shapes, and Colors
-
- 一個(gè)layer用于在background color上畫顏色漸變色,填充圖層的形狀(包括圓角)。
-
- 在其坐標(biāo)空間中繪制立方貝塞爾樣條曲線的圖層。
-
- 一個(gè)提供簡單文本布局和渲染純文本或?qū)傩宰址膱D層。
3. Animating Content
-
-
Core Animation動(dòng)畫抽象父類。
-
-
- 您的應(yīng)用程序可以實(shí)現(xiàn)的方法,以便在動(dòng)畫開始和停止時(shí)進(jìn)行響應(yīng)。
-
-
CAAnimation的一個(gè)抽象子類,用于創(chuàng)建操縱圖層屬性值的動(dòng)畫。
-
-
- 為圖層屬性提供基本的單關(guān)鍵幀動(dòng)畫功能的對象。
-
- 為圖層對象提供關(guān)鍵幀動(dòng)畫功能的對象。
-
- 一種將彈簧般的力應(yīng)用于圖層屬性的動(dòng)畫。
-
- 提供圖層狀態(tài)之間動(dòng)畫轉(zhuǎn)換的對象。
-
- 提供定義動(dòng)畫轉(zhuǎn)換的靈活方法的對象。
4. Batching Animations
-
- 允許將多個(gè)動(dòng)畫分組并同時(shí)運(yùn)行的對象。
-
- 將多個(gè)層次樹操作分組到渲染樹的原子更新的機(jī)制。
5. Timing
-
- 將動(dòng)畫的起搏定義為時(shí)序曲線的函數(shù)。
-
- 對分層計(jì)時(shí)系統(tǒng)進(jìn)行建模的方法,允許對象在其父級和本地時(shí)間之間映射時(shí)間。
6. Working with Particle Systems
-
- 發(fā)射,動(dòng)畫和渲染粒子系統(tǒng)的層。
-
- 由
CAEmitterLayer發(fā)出的粒子的定義。
- 由
7. Advanced Layer Options
-
- 創(chuàng)建其子層(源層)的指定數(shù)量的副本的層,每個(gè)副本可能具有應(yīng)用于其的幾何,時(shí)間和顏色轉(zhuǎn)換。
-
- 顯示可滾動(dòng)內(nèi)容大于其自己的邊界的圖層。
-
- 異步提供圖層內(nèi)容的一個(gè)圖層,可能在多個(gè)細(xì)節(jié)級別緩存。
-
-
CATransformLayer對象用于創(chuàng)建真正的3D圖層層次結(jié)構(gòu),而不是其他CALayer類使用的扁平化層次呈現(xiàn)模型。
-
8. Synchronizing Drawing to the Refresh Rate of the Display
-
- 一個(gè)定時(shí)器對象,允許應(yīng)用程序?qū)⑵淅L圖同步到顯示器的刷新率。
9. Rendering Using Low-Level Graphics APIs
-
- 支持在iOS和tvOS應(yīng)用程序中繪制OpenGL內(nèi)容的圖層。
-
- 一個(gè)管理金屬繪圖池的圖層。
-
-
Metal可以呈現(xiàn)或?qū)懭氲目娠@示資源。
-
-
-
CAOpenGLLayer提供了適合于渲染OpenGL內(nèi)容的圖層。
-
-
- 一個(gè)允許應(yīng)用程序?qū)訕滗秩镜?code>Core OpenGL(CGL)上下文中的層。
10. Remote Display of Layer Content
11. Reference
-
-
QCCompositionLayer類在Core Animation層次結(jié)構(gòu)中加載,播放和控制Quartz Composer合成。 組合跟蹤核心動(dòng)畫層時(shí)間,并直接呈現(xiàn)在QCCompositionLayer對象的當(dāng)前維度。
-
12. Extended Types
后記
未完,待續(xù)~~
