版本記錄
版本號(hào) | 時(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)框架及分類
說到框架這里需要外延一下子,大家對(duì)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
-
- 該對(duì)象可以管理基于圖像的內(nèi)容,同時(shí)允許你在那個(gè)內(nèi)容上執(zhí)行動(dòng)畫垃僚。
-
- 你的app可以實(shí)現(xiàn)的與layer相關(guān)事件響應(yīng)集绰。
-
- 在兩個(gè)layers之間的單個(gè)的布局(layout)。
-
- 允許對(duì)象管理layer及其子layer的布局的方法谆棺。
-
- 提供基于constraint layout管理者對(duì)象栽燕。
-
- 一個(gè)接口罕袋,允許對(duì)象響應(yīng)CALayer觸發(fā)的行為。
2. Drawing Text, Shapes, and Colors
-
- 一個(gè)layer用于在background color上畫顏色漸變色碍岔,填充圖層的形狀(包括圓角)浴讯。
-
- 在其坐標(biāo)空間中繪制立方貝塞爾樣條曲線的圖層。
-
- 一個(gè)提供簡(jiǎn)單文本布局和渲染純文本或?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)畫功能的對(duì)象鸵赫。
-
- 為圖層對(duì)象提供關(guān)鍵幀動(dòng)畫功能的對(duì)象衣屏。
-
- 一種將彈簧般的力應(yīng)用于圖層屬性的動(dòng)畫。
-
- 提供圖層狀態(tài)之間動(dòng)畫轉(zhuǎn)換的對(duì)象辩棒。
-
- 提供定義動(dòng)畫轉(zhuǎn)換的靈活方法的對(duì)象狼忱。
4. Batching Animations
-
- 允許將多個(gè)動(dòng)畫分組并同時(shí)運(yùn)行的對(duì)象。
-
- 將多個(gè)層次樹操作分組到渲染樹的原子更新的機(jī)制一睁。
5. Timing
-
- 將動(dòng)畫的起搏定義為時(shí)序曲線的函數(shù)钻弄。
-
- 對(duì)分層計(jì)時(shí)系統(tǒng)進(jìn)行建模的方法,允許對(duì)象在其父級(jí)和本地時(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é)級(jí)別緩存单鹿。
-
-
CATransformLayer
對(duì)象用于創(chuàng)建真正的3D圖層層次結(jié)構(gòu)掀宋,而不是其他CALayer類使用的扁平化層次呈現(xiàn)模型。
-
8. Synchronizing Drawing to the Refresh Rate of the Display
-
- 一個(gè)定時(shí)器對(duì)象仲锄,允許應(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
對(duì)象的當(dāng)前維度哈垢。
-
12. Extended Types
后記
未完妻柒,待續(xù)~~