我正在对图像进行分析处理。当我浏览所有像素时,我希望获得有关进度的反馈。这是我的代码:
for _ in 0 ..< height {
for _ in 0 ..< width {
analyzeImage(currentPixel)
currentPixel = currentPixel.successor()
}
updateProgress()
}
func updateProgress() {
self.fractionalProgress += self.fractionalRatio
if (Int(self.fractionalProgress / self.fractionalRatio) % 20) == 0 {
self.progressBar.progress = self.fractionalProgress
print(self.progressBar.progress)
}
}
我在嵌套for循环中调用了updateProgress。 打印结果正在更新,但条形图不会在视觉上更改。它只在最后更新。 感谢先进的任何帮助!!!!
答案 0 :(得分:0)
UIKit是单线程的,仅用于从主线程运行。如果你有一个循环在主线程上执行工作,那么UIKit将不会更新,直到你的代码运行完毕并且你的方法已经返回。
为了显示进度,您需要在后台线程上执行工作并在主线程上更新UIKit。阅读Concurrency Programming Guide。