UIView和CALayer區別
阿新 • • 發佈:2018-11-23
(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 不可以;圖層不能直接渲染到螢幕上。