iOS動畫程式設計-Layer動畫[ 1 ] Layer Animations Overview

Hydrogen發表於2015-11-25

介紹

之前我們已經討論了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主執行緒執行

  • 非常靈活、強大,擁有很多子類

Layer

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

  • 不在響應鏈上

  • 預設無自定義邏輯,常常由GPU直接快取、繪製

  • 不是很靈活,子類較少

什麼時候選擇Layer animation

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

相關文章