ios - UITableView reloadData() 不刷新显示的单元格

标签 ios uitableview swift uinavigationcontroller

我有

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/

相关文章:

ios - 如何根据大小类安装和卸载 UIButton?

ios - 如何为特定矩形设置地理围栏?

SwiftUI - 来自 Coordinator 的 ObservableObject 更新

ios - 使用来自 GoogleService-Info.plist 的信息访问 Firebase 前端

ios - 如何使用 swift 将图像从 Images.xcassets 加载到 UIImage

ios - 通过 AFC2 在越狱设备上安装非 UI 应用程序

iphone - 默认 UITableViewCellStyleSubtitle 字体大小?

ios - 在自调整单元格中按比例分布的 UIStackView

ios - 无法使用 tableview cell.accessoryView 进行 Click 事件

macos - 单击 statusItem 时如何调用函数/操作?