UIProgressView 只更新值而不是 UI
Posted
技术标签:
【中文标题】UIProgressView 只更新值而不是 UI【英文标题】:UIProgressView only Update Values Instead of UI 【发布时间】:2016-07-05 20:05:03 【问题描述】:我正在对图像进行分析。当我遍历所有像素时,我想获得有关进度的反馈。这是我的代码:
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。 打印结果正在更新,但条形图在视觉上没有变化。它只在最后更新。 感谢您的任何帮助!!!!
【问题讨论】:
【参考方案1】:UIKit 是单线程的,只能从主线程运行。如果你有一个循环在主线程上执行工作,那么 UIKit 将在你的代码完成运行并且你的方法返回之后才会更新。
为了显示进度,您需要在后台线程上执行工作并在主线程上更新 UIKit。阅读Concurrency Programming Guide。
【讨论】:
以上是关于UIProgressView 只更新值而不是 UI的主要内容,如果未能解决你的问题,请参考以下文章