使用Swift重新加载表视图中的单元格数据

19
如何重新加载表视图中单元格的数据?我希望向服务器发送请求并获得JSON响应。目前,我已经实现了请求和响应处理,并且可以在我的单元格中显示数据。但是我希望服务器仅响应10个数据集。当我在应用程序中滚动到表视图的末尾(其中包含10个单元格)时,我希望向服务器发出下一个请求,并以此类推获取下一个10个数据集。我使用Swift作为编程语言。
谢谢!

你可以使用TableView函数tableView.visibleRows()获取可见单元格的数组,或者使用tableView.indexPathsForVisibleRows()获取可见行的IndexPath!然后,您可以通过tableView.reloadData()函数重新加载表格! - Saurabh Prajapati
请看这个例子 https://github.com/Haneke/HanekeSwift - Saurabh Prajapati
4个回答

51

你可以使用 self.tableView.reloadData() 来重新加载整个表格或者 self.tableView.reloadRowsAtIndexPaths(paths, withRowAnimation: UITableViewRowAnimation.None) 来重新加载特定的单元格。

你可以在这里了解更多关于UITableView类的信息。


8
是的 - 这就是我提供的代码为什么使用 Swift 的原因... 我会加上 "self." 只是为了确保。 - YogevSitton
1
我也使用 self 来表示它是一个实例变量;对我来说,这使得代码更加清晰易懂。 - HAS
@YogevSitton self.tableView.reloadRowsAtIndexPaths(paths, withRowAnimation: UITableViewRowAnimation.None)...我有一个tableView,想在0索引处添加一个新的单元格...我该怎么做呢?我的意思是...我不知道如何创建一个具有特定行和列的indexpath对象,因为没有那种类型的构造函数。 - Maninder Singh

12

如何在 Swift 3.0 中重新加载可见的 tableview 单元格

pTableView.beginUpdates()

pTableView.reloadRows(at: pMessagesTableView.indexPathsForVisibleRows!, with: .none)

pTableView.endUpdates()

9

试试这个...

Swift 2.0

dispatch_async(dispatch_get_main_queue(), { () -> Void in
   self.tableView.reloadData()
})

Swift 3.0

DispatchQueue.main.async {
    self.tableview.reloadData()
}

如果你在块内调用了reloadData(),那么你必须将其分派到主队列上。 - NSCoder

4
使用TableView函数tableView.visibleRows()可以获得可见单元格的数组,或者使用tableView.indexPathsForVisibleRows()可以获得可见行的IndexPath!然后您可以通过tableView.reloadData()函数重新加载表格!
请查看以下链接: 链接1 您可以在这里阅读有关UITableView类的信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接