UITableView性能優(yōu)化與卡頓問題

1.最常用的就是cell的重用, 注冊重用標(biāo)識符

如果不重用cell時寓免,每當(dāng)一個cell顯示到屏幕上時垢袱,就會重新創(chuàng)建一個新的cell

如果有很多數(shù)據(jù)的時候,就會堆積很多cell潮售。如果重用cell,為cell創(chuàng)建一個ID

每當(dāng)需要顯示cell 的時候锅风,都會先去緩沖池中尋找可循環(huán)利用的cell酥诽,如果沒有再重新創(chuàng)建cell

2.避免cell的重新布局

cell的布局填充等操作 比較耗時,一般創(chuàng)建時就布局好

如可以將cell單獨放到一個自定義類皱埠,初始化時就布局好

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

當(dāng)我們創(chuàng)建cell的數(shù)據(jù)源方法時肮帐,編譯器并不是先創(chuàng)建cell 再定cell的高度

而是先根據(jù)內(nèi)容一次確定每一個cell的高度,高度確定后边器,再創(chuàng)建要顯示的cell泪姨,滾動時,每當(dāng)cell進(jìn)入憑虛都會計算高度饰抒,提前估算高度告訴編譯器肮砾,編譯器知道高度后,緊接著就會創(chuàng)建cell袋坑,這時再調(diào)用高度的具體計算方法仗处,這樣可以方式浪費時間去計算顯示以外的cell

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

盡量使cell得布局大致相同,不同風(fēng)格的cell可以使用不用的重用標(biāo)識符枣宫,初始化時添加控件婆誓,

不適用的可以先隱藏

5.不要使用ClearColor,無背景色也颤,透明度也不要設(shè)置為0

渲染耗時比較長

6.使用局部更新

如果只是更新某組的話洋幻,使用reloadSection進(jìn)行局部更新

7.加載網(wǎng)絡(luò)數(shù)據(jù),下載圖片翅娶,使用異步加載文留,并緩存

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

9.按需加載cell好唯,cell滾動很快時,只加載范圍內(nèi)的cell

10.不要實現(xiàn)無用的代理方法燥翅,tableView只遵守兩個協(xié)議

11.緩存行高:

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凛膏,隨后出現(xiàn)的幾起案子杨名,更是在濱河造成了極大的恐慌,老刑警劉巖猖毫,帶你破解...
    沈念sama閱讀 212,657評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镣煮,死亡現(xiàn)場離奇詭異,居然都是意外死亡鄙麦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,662評論 3 385
  • 文/潘曉璐 我一進(jìn)店門镊折,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胯府,“玉大人,你說我怎么就攤上這事恨胚÷钜颍” “怎么了?”我有些...
    開封第一講書人閱讀 158,143評論 0 348
  • 文/不壞的土叔 我叫張陵赃泡,是天一觀的道長寒波。 經(jīng)常有香客問我,道長升熊,這世上最難降的妖魔是什么俄烁? 我笑而不...
    開封第一講書人閱讀 56,732評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮级野,結(jié)果婚禮上页屠,老公的妹妹穿的比我還像新娘。我一直安慰自己蓖柔,他們只是感情好辰企,可當(dāng)我...
    茶點故事閱讀 65,837評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著况鸣,像睡著了一般牢贸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镐捧,一...
    開封第一講書人閱讀 50,036評論 1 291
  • 那天潜索,我揣著相機(jī)與錄音臭增,去河邊找鬼。 笑死帮辟,一個胖子當(dāng)著我的面吹牛速址,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播由驹,決...
    沈念sama閱讀 39,126評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼芍锚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔓榄?” 一聲冷哼從身側(cè)響起并炮,我...
    開封第一講書人閱讀 37,868評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甥郑,沒想到半個月后逃魄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,315評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡澜搅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,641評論 2 327
  • 正文 我和宋清朗相戀三年伍俘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勉躺。...
    茶點故事閱讀 38,773評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡癌瘾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饵溅,到底是詐尸還是另有隱情妨退,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布蜕企,位于F島的核電站咬荷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏轻掩。R本人自食惡果不足惜幸乒,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唇牧。 院中可真熱鬧逝变,春花似錦、人聲如沸奋构。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,859評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弥臼。三九已至宴咧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間径缅,已是汗流浹背掺栅。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工烙肺, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氧卧。 一個月前我還...
    沈念sama閱讀 46,584評論 2 362
  • 正文 我出身青樓桃笙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沙绝。 傳聞我的和親對象是個殘疾皇子搏明,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,676評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 1.最常用的就是cell的重用, 注冊重用標(biāo)識符 如果不重用cell時闪檬,每當(dāng)一個cell顯示到屏幕上時星著,就會重新創(chuàng)...
    smart_small閱讀 5,979評論 3 10
  • 1.最常用的就是cell的重用, 注冊重用標(biāo)識符 如果不重用cell時粗悯,每當(dāng)一個cell顯示到屏幕上時虚循,就會重新創(chuàng)...
    i馬閱讀 515評論 0 1
  • 1.最常用的就是cell的重用, 注冊重用標(biāo)識符 如果不重用cell時样傍,每當(dāng)一個cell顯示到屏幕上時横缔,就會重新創(chuàng)...
    兔兔小八哥閱讀 300評論 0 2
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,856評論 25 707
  • 今天是在英國林肯小鎮(zhèn)的第四天,慢慢的失去了剛來時的激動與興奮衫哥,開始以一種平常的眼光看待這座英國小鎮(zhèn)茎刚,或許真如大家說...
    北山之下閱讀 283評論 0 2