UITableView在10000个数据上的性能

Gob*_*i M 1 uitableview ios swift

我试图在TableView中加载10k静态记录.渲染tableview需要30s-45s.如何提高性能?

在延迟加载时分析,仅在从远程服务器下载图像时才发现相关搜索结果.

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

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

我搜索过这些链接

在"reloadData()"之后,Table View需要花费大量时间进行刷新

UITableView reloadData占用了太多时间

没有什么能解决这个问题

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

Anb*_*hik 9

UITableViewDataSourcePrefetching

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

以下两个方法处理预取

public func tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [IndexPath])
optional public func tableView(_ tableView: UITableView, cancelPrefetchingForRowsAt indexPaths: [IndexPath])
Run Code Online (Sandbox Code Playgroud)

你的问题太宽泛而无法回答,对于样本,你可以在这里获得一步一步的教程