1、UIView和CALayer的關系
UIView繼承自UIResponder,可以處理系統(tǒng)傳遞過來的事件,如:UIApplication、UIViewController藐握、UIView,以及所有從UIView派生出來的UIKit類垃喊。每個UIView內(nèi)部都有一個CALayer提供內(nèi)容的繪制和顯示猾普,并且作為內(nèi)部RootLayer的代理視圖。
CALayer繼承自NSObject類本谜,負責顯示UIView提供的內(nèi)容contents抬闷。CALayer有三個視覺元素:背景色、內(nèi)容和邊框耕突,其中笤成,內(nèi)容的本質(zhì)是一個CGImage。
官方解釋(The Relationship Between Layers and Views)太過繁瑣眷茁,我們可以簡單的理解為UIView是對CALayer 的一個封裝炕泳。
2、CALayer的三個視覺元素
CALayer的三個視覺元素我們可以通過一個例子來理解上祈,假設我們聲明了一個視圖對象并添加到屏幕上(UIView *view = [UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];)培遵, CALayer 是這樣來呈現(xiàn)內(nèi)容的:背景顏色為空(透明色),contents為空登刺,前景框?qū)挾葹?00的前景框籽腕,這個視圖從視覺上看什么都看不到。這里我們需要著重了解【contents雖然是個id類型纸俭,但實質(zhì)上contents就是CGImage類型皇耗,當然按照注釋也可以是NSImage,但實質(zhì)上就是一張圖片】揍很。