如何强制 UI 显示快速更新?

Lan*_*rit 5 user-interface updates swift

我试图让视图控制器在我处于循环中时更新,该循环调用一个执行大量标签更新的函数。但是在我完成循环之前不会更新屏幕。

有没有办法在继续之前强制更新 UI?类似于强制将数据写入磁盘。

按钮开始循环的代码是这样的:

        while (match.currentInnings == currentInnings)
        {
            playSingleBall()
            if (gameover == true)
            {
                return
            }
        }
Run Code Online (Sandbox Code Playgroud)

在 playSingleBall 之后,我想在继续之前强制进行 UI 更新。

谢谢。

Sal*_*ani 4

在调度队列中调用它:

斯威夫特3.x

DispatchQueue.main.async {
    updateYourUI()
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特2.x

dispatch_async(dispatch_get_main_queue()) {
   updateYourUI()       
}
Run Code Online (Sandbox Code Playgroud)

  • 这是一种更好的回答方式,因为一个答案可以帮助其他人,有很多人使用 Swift 2.x 进行编码。 (4认同)
  • 仅供参考 - 随着 Swift 4 的推出,在答案中发布 Swift 2 代码确实没有意义。 (3认同)