1. 程式人生 > >UIView和CALayer區別

UIView和CALayer區別

(1)首先UIView可以響應使用者的觸控事件,Layer不可以. 

(2)View中frame getter方法,bounds和center,UIView並沒有做什麼工作;它只是簡單的各自呼叫它底層的CALayer的frame,bounds和position方法。

(3)UIView主要是對顯示內容的管理而CALayer 主要側重顯示內容的繪製。

(4)在做iOS 動畫的時候,修改非RootLayer的屬性(譬如位置、背景色等)會預設產生隱式動畫,而修改UIView則不會。每個UIView 內部都有一個CALayer 在背後提供內容的繪製和顯示,並且UIView 的尺寸樣式都由內部的Layer 所提供。兩者都有樹狀層級結構,layer 內部有SubLayers,View 內部有SubViews.但是Layer 比View 多了個AnchorPoint 

在View顯示的時候,UIView 做為Layer 的CALayerDelegate,View 的顯示內容由內部的CALayer 的display 

(5)CALayer是定義在CoreGraphic框架中的,設定顏色和影象屬性的時候要轉換成CGColor和CGImage屬性

(6)如果兩個UIView是父子關係,那麼它們內部的CALayer也是父子關係。

(7)兩者最明顯的區別是View可以接受並處理事件,而Layer 不可以;圖層不能直接渲染到螢幕上。