uitableview性能優(yōu)化

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

if (self) {

//1.柵格化,美工的術(shù)語:將cell中的所有內(nèi)容,生成一張獨立的圖像

//在屏幕滾動的時候,只顯示圖像

self.layer.shouldRasterize = YES;

//柵格化,必須制定分辨率,否則默認(rèn)使用*1生成圖像

self.layer.rasterizationScale = [UIScreen mainScreen].scale;

//2.異步繪制,如果cell比較復(fù)雜,可以使用

self.layer.drawsAsynchronously = YES;

}

return self;

}

這里處理后可以添加uitableview滾動的流暢性




其他的優(yōu)化uitableView的注意點

1.行高要緩存

2.不要動態(tài)創(chuàng)建子視圖? 所以子視圖需要預(yù)先創(chuàng)建? 如果不需要顯示設(shè)置hidden

3.所有子視圖都要添加到containview上

4.所有子視圖都要設(shè)置背景顏色

5.所有顏色不要設(shè)置alpha

6.cell柵格化和異步繪制

7.cell復(fù)用

8.圖片異步加載,圖片顯示在屏幕上才加載,滑動時不設(shè)置圖片(Runloop) ?(具體參考SDWebImage) ? ? ? ?圖片異步下載完成后,如果在滑動的時候設(shè)置到UIImageView上,會出現(xiàn)卡頓,所以要做到流暢的滑動,可以在滑動停止后設(shè)置。這里就可以用到Runloop了,當(dāng)UIScrollView滑動時,runloop會切換到UITrackingRunloopMode,UIScrollView停止后會切換到NSDefaultRunloopMode所以,可以將設(shè)置圖片的動作放在主線程的NSDefaultRunloopMode里

9.設(shè)置圓角。其實單純的設(shè)置圓角很簡單,它不會帶來任何性能損耗。view.layer.cornerRadius = 10.0f;因為在默認(rèn)情況下,這個屬性只會影響視圖的背景顏色和 border。而是我們加上label.layer.cornerRadius = 10.0f;label.layer.masksToBounds = true;就會離屏渲染

10.盡量將圖片的大小和UI空間的大小符合。服務(wù)器下發(fā)的圖片和實際的尺寸不一致,不得不去手動改尺寸,而重新計算尺寸就是有影響性能的。

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

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

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