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

Posted

技术标签:

【中文标题】使用 Swift 在表格视图中重新加载单元格数据【英文标题】:reload cell data in table view with Swift 【发布时间】:2014-12-29 19:57:27 【问题描述】:

如何在我的表格视图中重新加载单元格的数据?我想向我的服务器发出请求,服务器响应 JSON。目前我实现了请求和响应处理,我可以在我的单元格中显示数据。但我希望服务器只响应可能十个数据集。当我在应用程序中使用我的十个单元格滚动到表格视图的末尾时,我想向我的服务器发出下一个请求,服务器提供下一个十个数据集,依此类推。我使用 Swift 作为编程语言。

谢谢!

【问题讨论】:

您可以使用 TableView 函数 tableView.visibleRows() 获取可见单元格数组,也可以通过 tableView.indexPathsForVisibleRows() 获取可见行的索引路径!然后就可以通过 tableView.reloadData() 函数重新加载表格了! 看这个例子github.com/Haneke/HanekeSwift 【参考方案1】:

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

你可以阅读更多关于 UITableView 类here

【讨论】:

是的 - 这就是为什么我给出的代码是 swift ......我将添加“自我”。只是为了确保。 我也使用 self 表示它是一个 ivar ;) 对我来说,这使它更清楚。 @YogevSitton self.tableView.reloadRowsAtIndexPaths(paths, withRowAnimation: UITableViewRowAnimation.None)...我有tableView,我想在0索引处添加一个新单元格...我该怎么做那,我的意思是..我没有得到如何创建具有特定行和列的 indexpath 对象,因为没有该类型的构造函数?【参考方案2】:

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

pTableView.beginUpdates()

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

pTableView.endUpdates()

【讨论】:

【参考方案3】:

试试这个...

斯威夫特 2.0

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

斯威夫特 3.0

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

【讨论】:

如果你在一个块内调用 reloadData(),你必须调度它以便它在 main_queue 上【参考方案4】:

您可以使用TableView 函数tableView.visibleRows() 或您可以通过tableView.indexPathsForVisibleRows() 获得IndexPath 的可见行来获取可见单元格数组!然后你可以通过tableView.reloadData()函数重新加载表!

查看以下链接

link1

您可以阅读UITableView Class Here

【讨论】:

以上是关于使用 Swift 在表格视图中重新加载单元格数据的主要内容,如果未能解决你的问题,请参考以下文章

从自定义单元格重新加载表格视图数据

如何在编辑表格视图单元格中的文本字段时重新加载所有表格视图单元格 - iOS Swift

如何在单元格 Swift 2 中删除项目后重新加载表格视图

以swift语言在自定义表格视图单元格中更新进度视图下载

滚动表格视图时单元格变为空白(swift)

Swift 3 - 重新排列并保留表格视图中的单元格