表格視圖的性能優(yōu)化

現(xiàn)在對于iOS開發(fā)者來說越來越注重App的性能優(yōu)化的問題,而表格視圖是App中經(jīng)常使用的UI控件,表格視圖的卡頓會大大的降低用戶體驗。

1.查看是否需要優(yōu)化

真機運行程序,使用instructment中的Core Animation工具查看。左邊一欄的 數(shù)值范圍為0~60,幀數(shù)越高越好,如果滑動的幀數(shù)普遍在50+以上,可以暫時不用優(yōu)化。如果幀數(shù)普遍在30,40,此時視圖會出現(xiàn)卡頓,必須進行優(yōu)化。

2.優(yōu)化的方法(重要性從上到下依次降低)

2.1 行高

行高一定要緩存!緩存行高是解決性能問題的最佳途徑。當(dāng)然,如果當(dāng)前表格的刷新幀數(shù)很高,也可以不緩存行高。

2.2 提前計算

盡量少計算,所需要的數(shù)據(jù)提前計算好

2.3 圓角

控件上不要設(shè)置圓角半徑,以及所有圖片的渲染屬性

2.4 創(chuàng)建控件

不要動態(tài)的創(chuàng)建控件,所有需要的控件需要提前創(chuàng)建好。在顯示的時候,根據(jù)需要,顯示或者隱藏

2.5 cell的層級結(jié)構(gòu)

Cell中控件的層次結(jié)構(gòu)越少越好,數(shù)量也越少越好

3.高級優(yōu)化

注意: 幀數(shù)大于50+,不需要進行高級優(yōu)化。離屛渲染需要 CPU與GPU來回的切換,耗電會比較的厲害

優(yōu)化方法: 離屛渲染+柵格化
異步繪制后,會生成一張獨立的圖片,當(dāng)表格視圖再進行滾動時候,展示的是生成的圖片,停止?jié)L動之后,可以接收監(jiān)聽

__離屛渲染 __

  self.layer.drawsAsynchronously = true

柵格化

self.layer.shouldRasterize = true
self.layer.rasterizationScale = UIScreen.main.scale
最后編輯于
?著作權(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)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評論 25 709
  • 屏幕的顯示原理 CRT電子槍按照圖片上的方式,從上到下、從左到右的方式一行行掃描,掃描完成之后顯示器就會顯示一幀的...
    Terrnce閱讀 7,080評論 1 32
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,141評論 4 61
  • 深夜,剛剛準備入眠,接了一個好朋友的電話,她哭著跟我說,阿玦,我覺得沒什么比現(xiàn)在更糟糕的了。我覺得我快要死了,心疼...
    王玦閱讀 298評論 0 3
  • 梵高被謀殺了 孤獨和才情合伙謀殺了他 他自己埋葬了自己 從畫筆到一個熟練的生命收割者 早已選好了墓地 群鴉亂飛的麥...
    love垂楊紫陌閱讀 291評論 2 2

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