0

我正在对图像进行分析。当我遍历所有像素时,我想获得有关进度的反馈。这是我的代码:

       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。打印结果正在更新,但条形图在视觉上没有变化。它只在最后更新。感谢您在高级的任何帮助!!!!

4

1 回答 1

0

UIKit 是单线程的,只能从主线程运行。如果你有一个循环在主线程上执行工作,那么 UIKit 在你的代码完成运行并且你的方法返回之后才会更新。

为了显示进度,您需要在后台线程上执行工作并在主线程上更新 UIKit。阅读并发编程指南

于 2016-07-05T20:26:01.700 回答