歡迎使用CSDN markdown編輯器

2021-07-04 06:08:28 字數 1303 閱讀 9882

最近有人問我關於如何優化tableview,所以特地再次寫一篇文章來專門介紹如何優化tableview

1.uitableview的簡單認識:

①uitableview最核心的思想就是uitableviewcell的重用機制。

重用機制簡單理解就是:uitableview只會建立一螢幕或多一點的uitableviewcell,其他都是從重用池中重用的。每當cell滑出螢幕時,就會把此cell放到乙個集合,當要顯示某一

個位置的cell時,會先去集合中取,如果有直接拿來用,如果沒有,才會建立,這樣建立的好處就是,極大的減少了記憶體的開銷。

2.uitableview初級優化:

1)優化探索,專案拿到手時**是這樣:

- (uitableviewcell )tableview:(uitableview )tableview cellforrowatindexpath:(nsindexpath *)indexpath

nsdictionary *dict = self.datalist[indexpath.row];

[cell setcontentinfo:dict];

return cell;

} - (cgfloat)tableview:(uitableview )tableview heightforrowatindexpath:(nsindexpath )indexpath

2)改進**後:

- (cgfloat)tableview:(uitableview )tableview heightforrowatindexpath:(nsindexpath )indexpath

- (cgfloat)tableview:(uitableview )tableview heightforrowatindexpath:(nsindexpath )indexpath

思路是把賦值和計算布局分離:

但是這樣還不是最佳方案,實際上系統都需要呼叫底層的介面進行繪製,當我們大量新增控制項時,對資源的開銷也會很大,所以我們可以索性直接繪製,提高效率。

除了上面最主要的幾個之外,還有很多熟知的優化點:

1.正確使用cell的重用

2.盡量少用或者不用管透明圖層

3.如果cell內實現的內容來自web,使用非同步載入,快取請求結果

4.減少subviews的數量

5.在heightforrowatindexpath:中盡量不使用cellforrowatindexpath:,如果你需要用到它,只用一次然後快取結果

6.盡量少用addview給cell動態新增view,可以初始化時就新增,然後hide來控制是否顯示

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...