我又回来了蜂巢思维!
在我的 ViewController 类中,我有一个函数可以遍历数组中的一系列项目。我想要发生的是在循环的每次迭代中更新我的进度条,但它似乎在完成整个循环并退出我的函数之前不会更新屏幕上的进度条。
我很确定这只是因为每次通过应用程序循环时视图只会重绘一次(我可能在这里没有使用正确的术语。)
当我仍在 ViewController 函数循环中时,强制 ViewController 视图更新的正确方法是什么?
这基本上就是我现在正在做的事情:
func myFunction() {
for item in collection {
progressBar.increment(by:1)
progressBar.display()
}
// execute my other code
}
当这不起作用时,我尝试在 progressBar.draw 方法之后添加一个 needsSetDisplay ,如下所示:
func myFunction() {
for item in collection {
progressBar.increment(by:1)
progressBar.display()
let rect = self.view.visibleRect
self.view.needsSetDisplay(rect)
}
// execute my other code
}
但它仍然没有工作。
我确信有一种方法可以完成我需要做的事情,但我怀疑它涉及一些更高级的东西,比如运行多个进程,因为我是 Swift 新手,所以我可能还没有资格做这些事情,自从我用 Obj-C 编码以来已经至少 10 年了(也就是我忘记了我所知道的大部分内容。)
谢谢!
编辑我尝试失败的另一件事是打电话progressBar.displayAsNeeded()
,但它似乎也不起作用。