我有一个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