我有一個UITableView
哪些單元格是自定義的,並且單元格具有圖表(Charts
庫)的視圖。圖表的數據非常大(它作爲Controller的屬性存儲),它在幾秒鐘內出現。使用自定義單元格滾動UITableView時提高性能
我也做了一些圖表的視圖設置(只有很少的UI變化)在setSelected
方法定製TableViewCell
類
滾動時有一定的滯後出現表視圖。我想這是因爲我想展示的內容太多而發生的。
在解決這個問題我想過四種解決方案:從這個數組中ViewDidAppear
加載所有的細胞,將它們保存到數組中,
CellForRowAt
方法表演細胞。認沽表視圖爲滾動視圖,使內容的高度相當大,不適合所有細胞的表視圖。
製作圖表只加載後細胞的負荷和內容視圖出現。在圖表加載時顯示活動指標。
認沽圖表的裝載在後臺線程。
前兩種方法在內存管理方面似乎不太好。但我不確定,也許有我不知道的常見解決方案。
從某些項目的代碼示例:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let graphCell = tableView.dequeueReusableCell(withIdentifier: Cells.graphViewCell) as! GraphViewCell
graphCell.lineChartView.data = track.chartDataForHeight()
return graphCell
}
這裏的track
是可變的,在那裏我存儲數據的圖表。
沉重的UI更新會影響tableviewscroll。所以你的3方法會很好。第四種方法會有問題,因爲所有UI更新都應該在主線程中完成 – Vinodh