實現動畫方式深度解析(四) —— QuartzCore框架(一)

版本記錄

版本號 時間
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

  • CALayer

    • 該對象可以管理基于圖像的內容,同時允許你在那個內容上執行動畫。
  • CALayerDelegate

    • 你的app可以實現的與layer相關事件響應。
  • CAConstraint

    • 在兩個layers之間的單個的布局(layout)。
  • CALayoutManager

    • 允許對象管理layer及其子layer的布局的方法。
  • CAConstraintLayoutManager

    • 提供基于constraint layout管理者對象。
  • CAAction

    • 一個接口,允許對象響應CALayer觸發的行為。

2. Drawing Text, Shapes, and Colors

  • CAGradientLayer

    • 一個layer用于在background color上畫顏色漸變色,填充圖層的形狀(包括圓角)。
  • CAShapeLayer

    • 在其坐標空間中繪制立方貝塞爾樣條曲線的圖層。
  • CATextLayer

    • 一個提供簡單文本布局和渲染純文本或屬性字符串的圖層。

3. Animating Content

4. Batching Animations

  • CAAnimationGroup

    • 允許將多個動畫分組并同時運行的對象。
  • CATransaction

    • 將多個層次樹操作分組到渲染樹的原子更新的機制。

5. Timing

  • CAMediaTimingFunction

    • 將動畫的起搏定義為時序曲線的函數。
  • CAMediaTiming

    • 對分層計時系統進行建模的方法,允許對象在其父級和本地時間之間映射時間。

6. Working with Particle Systems

7. Advanced Layer Options

  • CAReplicatorLayer

    • 創建其子層(源層)的指定數量的副本的層,每個副本可能具有應用于其的幾何,時間和顏色轉換。
  • CAScrollLayer

    • 顯示可滾動內容大于其自己的邊界的圖層。
  • CATiledLayer

    • 異步提供圖層內容的一個圖層,可能在多個細節級別緩存。
  • CATransformLayer

    • CATransformLayer對象用于創建真正的3D圖層層次結構,而不是其他CALayer類使用的扁平化層次呈現模型。

8. Synchronizing Drawing to the Refresh Rate of the Display

  • CADisplayLink

    • 一個定時器對象,允許應用程序將其繪圖同步到顯示器的刷新率。

9. Rendering Using Low-Level Graphics APIs

  • CAEAGLLayer

    • 支持在iOS和tvOS應用程序中繪制OpenGL內容的圖層。
  • CAMetalLayer

    • 一個管理金屬繪圖池的圖層。
  • CAMetalDrawable

    • Metal可以呈現或寫入的可顯示資源。
  • CAOpenGLLayer

    • CAOpenGLLayer提供了適合于渲染OpenGL內容的圖層。
  • CARenderer

    • 一個允許應用程序將層樹渲染到Core OpenGL(CGL)上下文中的層。

10. Remote Display of Layer Content

11. Reference

12. Extended Types

后記

未完,待續~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容