版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.09.20 |
前言
app中好的炫的動畫可以讓用戶耳目一新,為產品增色不少,關于動畫的實現我們可以用基本動畫、關鍵幀動畫、序列幀動畫以及基于CoreGraphic的動畫等等,接下來這幾篇我就介紹下我可以想到的幾種動畫繪制方法。具體Demo示例已開源到Github —— 刀客傳奇,感興趣的可以看我寫的另外幾篇。
1. 實現動畫方式深度解析(一) —— 播放GIF動畫(一)
2. 實現動畫方式深度解析(二) —— 播放GIF動畫之框架FLAnimatedImage的使用(二)
3. 實現動畫方式深度解析(三) —— 播放序列幀動畫(一)
框架基本結構
1. OC中所有系統框架及分類
說到框架這里需要外延一下子,大家對OC中的有哪些框架以及具體可以分為幾類清楚嗎?下面我們就看一下OC中框架的基本結構。
看完上面幾個圖示,大家應該會感覺順了很多。
2. QuartzCore框架
大家知道利用CoreAnimation
可以實現動畫,但是CoreAnimation
并不是一個單獨的框架,它是屬于QuartzCore
框架里面的。下面我們就看一下這個框架的結構和主要的類。
框架的主要功能模塊分類
1. Layer Basics
-
- 該對象可以管理基于圖像的內容,同時允許你在那個內容上執行動畫。
-
- 你的app可以實現的與layer相關事件響應。
-
- 在兩個layers之間的單個的布局(layout)。
-
- 允許對象管理layer及其子layer的布局的方法。
-
- 提供基于constraint layout管理者對象。
-
- 一個接口,允許對象響應CALayer觸發的行為。
2. Drawing Text, Shapes, and Colors
-
- 一個layer用于在background color上畫顏色漸變色,填充圖層的形狀(包括圓角)。
-
- 在其坐標空間中繪制立方貝塞爾樣條曲線的圖層。
-
- 一個提供簡單文本布局和渲染純文本或屬性字符串的圖層。
3. Animating Content
-
-
Core Animation
動畫抽象父類。
-
-
- 您的應用程序可以實現的方法,以便在動畫開始和停止時進行響應。
-
-
CAAnimation
的一個抽象子類,用于創建操縱圖層屬性值的動畫。
-
-
- 為圖層屬性提供基本的單關鍵幀動畫功能的對象。
-
- 為圖層對象提供關鍵幀動畫功能的對象。
-
- 一種將彈簧般的力應用于圖層屬性的動畫。
-
- 提供圖層狀態之間動畫轉換的對象。
-
- 提供定義動畫轉換的靈活方法的對象。
4. Batching Animations
-
- 允許將多個動畫分組并同時運行的對象。
-
- 將多個層次樹操作分組到渲染樹的原子更新的機制。
5. Timing
-
- 將動畫的起搏定義為時序曲線的函數。
-
- 對分層計時系統進行建模的方法,允許對象在其父級和本地時間之間映射時間。
6. Working with Particle Systems
-
- 發射,動畫和渲染粒子系統的層。
-
- 由
CAEmitterLayer
發出的粒子的定義。
- 由
7. Advanced Layer Options
-
- 創建其子層(源層)的指定數量的副本的層,每個副本可能具有應用于其的幾何,時間和顏色轉換。
-
- 顯示可滾動內容大于其自己的邊界的圖層。
-
- 異步提供圖層內容的一個圖層,可能在多個細節級別緩存。
-
-
CATransformLayer
對象用于創建真正的3D圖層層次結構,而不是其他CALayer類使用的扁平化層次呈現模型。
-
8. Synchronizing Drawing to the Refresh Rate of the Display
-
- 一個定時器對象,允許應用程序將其繪圖同步到顯示器的刷新率。
9. Rendering Using Low-Level Graphics APIs
-
- 支持在iOS和tvOS應用程序中繪制OpenGL內容的圖層。
-
- 一個管理金屬繪圖池的圖層。
-
-
Metal
可以呈現或寫入的可顯示資源。
-
-
-
CAOpenGLLayer
提供了適合于渲染OpenGL
內容的圖層。
-
-
- 一個允許應用程序將層樹渲染到
Core OpenGL(CGL)
上下文中的層。
- 一個允許應用程序將層樹渲染到
10. Remote Display of Layer Content
11. Reference
-
-
QCCompositionLayer
類在Core Animation
層次結構中加載,播放和控制Quartz Composer合成
。 組合跟蹤核心動畫層時間,并直接呈現在QCCompositionLayer
對象的當前維度。
-
12. Extended Types
后記
未完,待續~~