UIView 和 CALayer 的區別和聯絡。

2022-05-16 07:21:55 字數 836 閱讀 3995

首先uiview可以響應事件,layer不可以。

在 uiresponder中定義了處理各種事件和事件傳遞的介面, 而calayer直接繼承 nsobject,並沒有相應的處理事件的介面。

下面列舉一些處理觸控事件的介面

2.uiview主要是對顯示內容的管理而 calayer 主要側重顯示內容的繪製,calayer是繪圖部分,uiview本身更像是乙個calayer的管理器,訪問它的跟繪圖和跟座標有關的屬性,例如frame,bounds等,實際上內部都是在訪問它所包含的calayer的相關屬性。

總結:

使用uiview和calayer都能實現動畫效果,但是在真實的開發中,一般還是主要使用uiview封裝的動畫,而很少使用calayer的動畫。

calayer核心動畫與uiview動畫的區別:

uiview封裝的動畫執行完畢之後不會**。即如果是通過calayer核心動畫改變layer的位置狀態,表面上看雖然已經改變了,但是實際上它的位置是沒有改變的。

1.ios中我們能看到的控制項都是uiview的子類,比如uibutton uilabel uitextfield uiimageview等等

2.uiview能夠在螢幕的顯示是因為在建立它的時候內部自動新增乙個calayer圖層,通過這個圖層在螢幕上顯示的時候會呼叫乙個drawrect: 的方法,完成繪圖,才能在螢幕上顯示

3.calayer 本身就具有顯示功能,但是它不能響應使用者的互動事件,如果只是單純的顯示乙個圖形,此時你可以使用calayer建立或者是使用uiview建立,但是如果這個圖形想響應使用者互動事件,必須使用uiview或者子類

UIView和CALayer的區別

1.uiview是ios系統中介面元素的基礎,所有的介面元素都繼承自它。它本身完全是由coreanimation來實現的 mac下似乎不是這樣 它真正的繪圖部分,是由乙個叫calayer coreanimationlayer 的類來管理。uiview本身,更像是乙個calayer的管理器,訪問它的跟...

UIView 和 CAlayer 的關係

calayer是uiview中的乙個屬性,我們在給乙個view設定圓角,邊框,陰影度,偏移度的時候都會用到這個屬性。比如 uiview view nil view.layer bordercolor uicolor redcolor cgcolor calayer是quartzcore庫內的類,是i...

UIView和CALayer的那些事兒

繼承結構 calayer的繼承結構為 nsobject uiview是檢視的基類,uiviewcontroller是檢視控制器的基類,uiresponder是表示乙個可以在螢幕上響應觸控事件的物件 所屬框架 calayer是在 system library frameworks quartzcore...