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額外的開銷