UITableView在10000个数据上的性能

时间:2017-10-06 07:28:43

标签: ios swift uitableview

我正在尝试在TableView中加载10k静态记录。渲染tableview需要30s-45s。如何提高绩效?

分析延迟加载时,仅在从远程服务器下载图像时找到相关搜索结果。

注意:我已尝试在主线程中加载数据,使应用程序冻结

我想知道一次加载100个数据,滚动时我们可以加载另外100个数据。但我不知道如何实现这个

我搜索了这些链接

Table View takes a lot of time to refresh after "reloadData()"

UITableView reloadData taking too much time

没有解决问题

有人建议实现这个目标吗?

1 个答案:

答案 0 :(得分:9)

<强> UITableViewDataSourcePrefetching

  

当我们需要从Web下载大型模型(通常是图像或视频文件)或从磁盘获取时,预取很有用。预取还使我们在访问数据模型时有一些懒惰:我们不必获取所有数据模型,而只需获取即将显示的数据模型。这种方法可以减少电池和CPU消耗,从而带来更好的用户体验。

以下两个方法处理预取

public func tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [IndexPath])
optional public func tableView(_ tableView: UITableView, cancelPrefetchingForRowsAt indexPaths: [IndexPath])

您的问题太宽泛而无法回答,您可以逐步获取示例 tutorial here