我有
class StationViewController :
UITableViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var stationTableView: UITableView!
更新数据源中的数据并执行
stationTableView.reloadData()
这在屏幕上无法立即显示。如果我滚动,倾斜或做任何其他强制重新绘制屏幕的内容,则可以看到更新的单元格。我可以确认一下 UITableView确实通过调用
来进行更新println("\(stationTableView.visibleCells())")
打印预期的单元格。
设置的其余部分是UINavigationController
,其中StationViewController
为关系。 stationViewController
的IBOutlet已连接到情节提要文件中的UITableView
。
我似乎需要一个"重拍"屏幕,使我的更新立即可见。我该怎么做?
答案 0 :(得分:33)
感谢Artem,我发现我需要在主线程上调用reloadData()。这就是我解决这个问题的方法:
func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.stationTableView.reloadData()
});
}