gpt4 book ai didi

ios - 如何重新加载 UITableView 数据避免卡住

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:24 27 4
gpt4 key购买 nike

一些有经验的人可以告诉我从 UITableView 执行 reloadData() 以快速避免卡住的最佳方法是什么?

我有一个带有 TableView 的 ViewController,这显示了一个 10 行成对的用户列表。当滚动显示最后一行 - 1 时,在后台,应用程序请求接下来的 10 个用户,然后将他们添加到其余用户以在 TableView 中显示现在 20 个用户。

当使用委托(delegate)方法执行此操作时,重新加载会导致大约 1~2 秒的卡住,并且导航不舒适。

有解决办法吗?

最佳答案

当新数据到来时,你不需要重新加载整个tableView。您只需要相应地插入新行。这不会导致任何滞后/卡住。

func didFinishLoadNewUsers(newUsers: [User]) {
tableView.beginUpdates()
//array of index paths for new rows at the bottom
var indexPaths = [NSIndexPath]()
for row in (currentUsers.count..<(currentUsers.count + newUsers.count)) {
indexPaths.append(NSIndexPath(forRow: row, inSection: 0))
}
//update old data
currentUsers.appendContentsOf(newUsers)
//insert new rows to tableView
tableView.insertRowsAtIndexPaths(indexPaths, withRowAnimation: .Automatic)
tableView.endUpdates()
}

关于ios - 如何重新加载 UITableView 数据避免卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38748602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com