你給我解析清楚握童,都有了CALayer了,為什么還要UIView
UIView繼承自UIResponder也物,主要特點(diǎn)是可以響應(yīng)觸摸事件宫屠。而CALayer實(shí)際的圖層內(nèi)容管理。
Unix內(nèi)核設(shè)計(jì)的一個(gè)主要思想是——提供(Mechanism)機(jī)制而不是策略(Policy)滑蚯。編程問(wèn)題都可以抽離出機(jī)制和策略部分浪蹂。機(jī)制一旦實(shí)現(xiàn),就會(huì)很少更改告材,但策略會(huì)經(jīng)常得到優(yōu)化坤次。
CALayer也可以看做是一種機(jī)制,提供圖層繪制创葡,你們可以翻開(kāi)CALayer的頭文件看看浙踢,基本上是沒(méi)怎么變過(guò)的,而UIView可以看做是策略灿渴,變動(dòng)很多洛波。越是底層,越是機(jī)制骚露,越是機(jī)制就越是穩(wěn)定蹬挤。
所以?xún)H僅是基于分散風(fēng)險(xiǎn)原則也不應(yīng)該出現(xiàn)全能類(lèi)。各司其職棘幸,相互合作焰扳,把可控粒度降到最低,這樣也可以是系統(tǒng)更穩(wěn)定,更易修改吨悍。
因?yàn)槁┑纳倏偸前踩纳皇菃帷JO碌?0%專(zhuān)家接口可以隱藏與深層次育瓜。比如UIView遮蔽了大部分的CALayer接口葫隙,抽取構(gòu)造出更易用的frame和動(dòng)畫(huà)實(shí)現(xiàn),這樣上手更容易躏仇。