UIView於CALayer的主要的關係

2021-07-09 09:42:59 字數 636 閱讀 1498

我們應該都知道每個uiview都包含了乙個calayer。比如給乙個view切個圓角:

view.layer.cornerradius = 5.0f;

//加個邊框

view.layer.borderwidth = 1.0f;

view.layer.bordercolor = [uicolor redcolor].cgcolor;

calayer是quartzcore庫內的類,是ios上最基本的繪製單元;而uiview只是calayer之上的封裝,更準確的說,uiview是calayer的簡版封裝,加上事件處理的集合類。

uiview的渲染實質就是這個layer的渲染。uiview其實是把常用的介面(屬性和方法)暴露出來了,讓uiview更為易用。

其次,我們知道ios平台的cocoa touch是源於os x平台的cocoa,是在cocoa的基礎上新增了適用於移動手機裝置的手勢識別、動畫等特性;但從底層實現上來說,cocoa touch與cocoa共用一套底層的庫,其中就包括了quartzcore.framework;但quartzcore.framework一開始就算為os x設計的,所以其中有部分特性不適合做移動裝置開發的。因此,我們也不難理解為何uiview/nsview在calayer上做了一層封裝。

UIView和CALayer的區別

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

UIView與CALayer的理解

1 初始化乙個calayer calayer是含隱式動畫的 layer calayer alloc init 設定calayer的顏色 layer.backgroundcolor uicolor orangecolor cgcolor layer.frame cgrectmake 0,0,100,1...

UIView 和 CAlayer 的關係

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