UI篇

1、什么是重用機(jī)制?
通過identifer作為標(biāo)識(shí)來創(chuàng)建不同的cell,依托重用池來實(shí)現(xiàn)cell的重用

2、UI數(shù)據(jù)源同步
并發(fā)訪問數(shù)據(jù)源拷貝和串行訪問,根據(jù)具體場(chǎng)景選擇

3、UIView和CALayer的區(qū)別?
UIView為其提供內(nèi)容,以及負(fù)責(zé)處理觸摸等事件,參與響應(yīng)鏈
CALayer負(fù)責(zé)顯示內(nèi)容contents
體現(xiàn)了單一職責(zé)的設(shè)計(jì)原則

4、事件傳遞
從根視圖逐級(jí)遞歸查找直到找出sv視圖


事件傳遞示例圖

5、事件響應(yīng)
從點(diǎn)擊視圖向父視圖逐級(jí)傳遞,直到有接受事件的響應(yīng)終止傳遞,如到UIApplicationDelegate都還沒有接收,那相當(dāng)于本次點(diǎn)擊無(wú)效

6、圖像顯示原理


image.png

7、UI卡頓掉幀的原因,怎么優(yōu)化


image.png

優(yōu)化:


image.png

image.png

8、 UIView的繪制原理和異步繪制


image.png

image.png

9、什么是在屏渲染,什么是離屏渲染?


image.png
image.png

為何要避免?
離屏渲染會(huì)增加GPU的工作量,導(dǎo)致CPU和GPU的總耗時(shí)超過了16.7ms,從而造成了UI的延遲和卡頓。
創(chuàng)建了新的渲染緩沖區(qū),增加了內(nèi)存的開銷,多通道渲染管線合成,就會(huì)涉及上下文的切換,從而增加了GPU額外的開銷

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容