最近有人問我關於如何優化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頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...