總結(jié)了一下對tableView的性能優(yōu)化,大體有如下幾個部分,并不是太全面,但是基本上包含了大部分的影響cell的性能優(yōu)化的部分
1.大家最先想到的就是cell的重用問題,這個也是導(dǎo)致tableView滑動卡頓的最主要的原因之一,重用cell,大家都知道,這里不再多做說明
2.再一個就是cell的行高問題,ios7之后就要設(shè)置預(yù)估行高來避免調(diào)用heightForRowAtIndexPath來計算行高,而且計算行高這里太多東西要講,這里不詳細說明,會單開一篇文章詳細講解行高的設(shè)置問題
3.下載圖片使用SDWebImage來異步下載
4.cellForRowAtIndexPath里面不要做耗時操作
? 4.1? 讀取文件,寫入文件,最好是放到子線程,或先讀取好,在讓tableView去顯示
? 4.2? 盡量少做計算,能不做就不做,或者先計算好,cellForRowAtIndexPath
???????? 只負責(zé)來顯示
? 4.3 盡量不要去添加和移除view, 現(xiàn)將會用到的控件懶加載,要就顯示,不要就隱藏
5.tableView滾動的時候,不要去做動畫
6.cell里面的控件,約束最好不要使用remake,動態(tài)添加約束是比較耗性能的
7.cell里面的控件,背景最好是不透明的 (圖層混合), view的背景顏色 clearColor 盡量少
8.圖片圓角不要使用 layer.cornerRadius(設(shè)置圓角非常的好性能,會單開一篇文章詳細說明)
9.圖層最好不要使用陰影, 陰影會導(dǎo)致離屏渲染
10.異步繪制
11.柵格化
目前想到的只有這些,個人認(rèn)為平時開發(fā)中最主要注意的還是重用,行高,動畫,圓角這幾個注意點,而且每個點都沒有細講,算是一個總結(jié),關(guān)于行高問題和設(shè)置圖片圓角我會另開文章詳細講解,其他的部分大家可以去百度了解.