我有
class StationViewController :
UITableViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var stationTableView: UITableView!
更新我的数据源中的数据时做
stationTableView.reloadData()
这不会立即出现在屏幕上。如果我滚动、倾斜或做任何其他强制重新绘制屏幕的事情,更新的单元格是可见的。我可以确认 UITableView 确实通过调用进行了更新
println("\(stationTableView.visibleCells())")
打印预期的单元格。
设置的其余部分是 UINavigationController
,它与我的 StationViewController
有关系。 stationViewController
的 IBOutlet 连接到 Storyboard文件中的 UITableView
。
我似乎需要对屏幕进行“重绘”以使我的更新立即可见。我该怎么做?
最佳答案
感谢 Artem,我发现我需要在主线程上调用 reloadData()。我就是这样解决的:
func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.stationTableView.reloadData()
});
}
关于ios - UITableView reloadData() 不刷新显示的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958282/