使用 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 在表格视图中重新加载单元格数据的主要内容,如果未能解决你的问题,请参考以下文章