- UIView主要是對顯示內(nèi)容的管理,而CALayer主要是對顯示內(nèi)容的繪制屈暗。
嚴格來說拆讯,UIView是CALayer的CALayerDelegate脂男,在代理方法內(nèi)部[CALayerDelegate drawLayer:inContext]中調(diào)用UIView的DrawRect方法,從而繪制出UIView的內(nèi)容种呐。 - UIView可以響應(yīng)事件宰翅,Layer不可以。
UIKit使用UIResponder作為響應(yīng)對象爽室,來響應(yīng)系統(tǒng)傳遞過來的事件并進行處理汁讼,UIApplication、UIViewController阔墩、UIView和一切從UIView派生出來的UIKit類都直接或者間接繼承自UIResponder嘿架。而UIResponder中定義了處理各種事件和事件傳遞的接口。
而CALayer直接繼承自NSObject啸箫,并沒有響應(yīng)的處理事件的接口耸彪。 - 在做iOS動畫的時候,修改費RootLayer的屬性(譬如位置忘苛、背景色等)會產(chǎn)生默認的隱式動畫蝉娜,而修改UIView不會。原因是UIView默認情況下禁止了Layer動畫柑土,但是在animation block中重新啟用了它們蜀肘。可以通過動畫事務(wù)(CATransaction)去關(guān)系隱式動畫
任何可動畫的CALayer屬性改變時稽屏,layer都會尋找運行合適的action來實現(xiàn)這個改變扮宠,layer向它的delegate發(fā)送actionForLayer:ForKey:消息來詢問提供一個對應(yīng)屬性變化的action。參考資料 - 每個UIVIew內(nèi)部都有一個CALayer在背后提供內(nèi)容的繪制和顯示狐榔,并且UIView的樣式和尺寸都由內(nèi)部的Layer所提供坛增。兩者都有樹狀層級結(jié)構(gòu),layer內(nèi)部有subLayers薄腻,View內(nèi)部有SubViews收捣,但是Layer比view多了個AnchorPoint
- UIView和CALayer的frame映射及View如何創(chuàng)建CALayer
一個Layer的frame是由它的anchorPoint、position庵楷、bounds罢艾、transforms共同決定的,而view的frame只是簡單的返回了layer的frame尽纽,同樣的咐蚯,View 的center和bounds也是返回Layer的一些屬性。參考資料
UIView和CALayer的關(guān)系
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搁胆,“玉大人弥搞,你說我怎么就攤上這事∏裕” “怎么了攀例?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長顾腊。 經(jīng)常有香客問我粤铭,道長,這世上最難降的妖魔是什么杂靶? 我笑而不...
- 正文 為了忘掉前任梆惯,我火速辦了婚禮,結(jié)果婚禮上吗垮,老公的妹妹穿的比我還像新娘垛吗。我一直安慰自己,他們只是感情好烁登,可當(dāng)我...
- 文/花漫 我一把揭開白布怯屉。 她就那樣靜靜地躺著,像睡著了一般饵沧。 火紅的嫁衣襯著肌膚如雪锨络。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼拂到,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了码泞?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布儡嘶,位于F島的核電站喇聊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蹦狂。R本人自食惡果不足惜誓篱,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凯楔。 院中可真熱鬧窜骄,春花似錦、人聲如沸摆屯。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽鸥拧。三九已至党远,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間富弦,已是汗流浹背沟娱。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- UIView是視圖的基類唉铜,UIViewController是視圖控制器的基類台舱,UIResponder是表示一個可以...
- 前言 前面發(fā)了一篇iOS 面試的文章,在說到 UIView 和 CALayer 的區(qū)別和聯(lián)系的時候,被喵神指出沒有...
- UIView 顯示在屏幕上歸功于CALayer竞惋,通過調(diào)用drawRect方法來渲染自身的內(nèi)容柜去,調(diào)節(jié)CALayer的...
- Core Animation其實是一個令人誤解的命名。你可能認為它只是用來做動畫的拆宛,但實際上它是從一個叫做Laye...
- 1 UIView和CALayer關(guān)系 UIView是iOS系統(tǒng)中界面元素的基礎(chǔ)嗓奢,所有的界面元素都是繼承自它。它真正...