UITableView卡頓的優(yōu)化

卡頓原因:

1.cell復用,注冊重用標識符

2.避免cell重新布局(創(chuàng)建時就布局好)

3.提前計算并緩存cell的屬性及內(nèi)容(高度)

cell的顯示是先計算高度調(diào)用(height方法),然后再調(diào)用(cel lfor row)方法

4.減少cell中控件的數(shù)量

盡量時cell布局相同,不適用的先隱藏

5.不要使用clearcolor,無背景色,透明度不設置為0(渲染耗時比較長)

6.使用局部更新

如果只更新某組,使用reloadSection進行局部更

7.加載網(wǎng)絡數(shù)據(jù)圖片,使用異步并緩存

8..少使用addView 給cell動態(tài)添加view

9.當cell滾動很快時,只記載范圍內(nèi)的cell

10.不實現(xiàn)無用的代理方式

11.緩存行高:estimatedHeightForRow不能和HeightForRow里面的layoutIfNeed同時存在,這兩者同時存在才會出現(xiàn)“竄動”的bug。所以我的建議是:只要是固定行高就寫預估行高來減少行高調(diào)用次數(shù)提升性能。如果是動態(tài)行高就不要寫預估方法了,用一個行高的緩存字典來減少代碼的調(diào)用次數(shù)即可

12.不做多余的繪制,在實現(xiàn)drawRect:的時候,它的rect參數(shù)就是需要繪制的區(qū)域,這個區(qū)域之外的不需要進行繪制。

13.預渲染圖像。當新的圖像出現(xiàn)時,仍然會有短暫的停頓現(xiàn)象。解決的辦法就是在bitmap context里先將其畫一遍,導出成UIImage對象,然后再繪制到屏幕;

14.使用正確的數(shù)據(jù)結構來存儲數(shù)據(jù)。



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

相關閱讀更多精彩內(nèi)容

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