我正在尝试在TableView中加载10k静态记录。渲染tableview需要30s-45s。如何提高绩效?
分析延迟加载时,仅在从远程服务器下载图像时找到相关搜索结果。
注意:我已尝试在主线程中加载数据,使应用程序冻结
我想知道一次加载100个数据,滚动时我们可以加载另外100个数据。但我不知道如何实现这个
我搜索了这些链接
Table View takes a lot of time to refresh after "reloadData()"
UITableView reloadData taking too much time
没有解决问题
有人建议实现这个目标吗?
答案 0 :(得分:9)
<强> UITableViewDataSourcePrefetching 强>
当我们需要从Web下载大型模型(通常是图像或视频文件)或从磁盘获取时,预取很有用。预取还使我们在访问数据模型时有一些懒惰:我们不必获取所有数据模型,而只需获取即将显示的数据模型。这种方法可以减少电池和CPU消耗,从而带来更好的用户体验。
以下两个方法处理预取
public func tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [IndexPath])
optional public func tableView(_ tableView: UITableView, cancelPrefetchingForRowsAt indexPaths: [IndexPath])
您的问题太宽泛而无法回答,您可以逐步获取示例 tutorial here