iOS動畫編程-Layer動畫[ 1 ] Layer Animations Overview

介紹

以前咱們已經討論了View動畫和基於AutoLayout的動畫,如今咱們已經能熟練的運用UIView動畫了,是時候挖掘一些更深層次的、更底層的、更Powerful的Core Animation API了
這章中咱們將一塊兒探索Layer層次的動畫緩存

Views vs. layers

首先咱們來看看View和Layer之間的區別與聯繫
Layer是一個簡單的類,其中只包含了幾個圖片屬性,每個UIView後都有一個Layer,你能夠認爲Layer就是View類更低的那一層,Layer與View的區別以下:佈局

  • Layer是一個model對象,它包含數據屬性,沒有邏輯,沒有複雜的AutoLayout依賴,它不處理任何用戶交互。優化

  • 它包含了邊線、邊框顏色、陰影及其位置等屬性動畫

  • 最後,Core Animation 優化了Layer內容的緩存, 能夠由GPU直接快速的繪圖線程

View

  • 複雜的佈局體系、自動佈局等對象

  • 用戶交互圖片

  • 常常包含自定義邏輯、自定義畫圖代碼,常在CPU主線程執行animation

  • 很是靈活、強大,擁有不少子類io

Layer

  • 簡單的佈局體系、快速的佈局、繪製model

  • 不在響應鏈上

  • 默認無自定義邏輯,經常由GPU直接緩存、繪製

  • 不是很靈活,子類較少

何時選擇Layer animation

若是選擇ViewAnimation可以完成你的需求,就應當去使用View Animation,若是你須要更加靈活的、更強大的動畫效果,你應該使用Layer animation

相關文章
相關標籤/搜索