- UIView本身是由CoreAnimation來(lái)實(shí)現(xiàn)的帐姻。它真正的繪圖部分,是由一個(gè)CALayer類來(lái)管理篮奄。
- UIView有個(gè)重要屬性layer煤杀,可以返回它的主CALayer實(shí)例。訪問(wèn)UIView的繪圖和坐標(biāo)相關(guān)的屬性谒出,例如frame隅俘,bounds等,實(shí)際上都是在訪問(wèn)它所包含的CALayer的相關(guān)屬性笤喳。
- UIView的layer樹形在系統(tǒng)內(nèi)部为居,被維護(hù)著三份copy。分別是邏輯樹杀狡,這里是代碼可以操縱的蒙畴;動(dòng)畫樹,是一個(gè)中間層呜象,系統(tǒng)就在這一層上更改屬性膳凝,進(jìn)行各種渲染操作;顯示樹恭陡,其內(nèi)容就是當(dāng)前正被顯示在屏幕上得內(nèi)容蹬音。
- 動(dòng)畫的運(yùn)作:對(duì)UIView的subLayer(非主Layer)屬性進(jìn)行更改,系統(tǒng)將自動(dòng)進(jìn)行動(dòng)畫生成休玩,動(dòng)畫持續(xù)時(shí)間的缺省值似乎是0.5秒著淆。
- layer 內(nèi)部維護(hù)著三分 layer tree,分別是 presentLayer Tree(動(dòng)畫樹),modeLayer Tree(模型樹), Render Tree (渲染樹),在做 iOS動(dòng)畫的時(shí)候,我們修改動(dòng)畫的屬性拴疤,在動(dòng)畫的其實(shí)是 Layer 的 presentLayer的屬性值,而最終展示在界面上的其實(shí)是提供 View的modelLayer
- 兩者最明顯的區(qū)別是 View可以接受并處理事件永部,而 Layer 不可以