我正在尝试实现一个UIProgress视图。每次在for循环中执行迭代结束时,我都会运行函数setProgress。所取得的进展如下:
let progress: Float = Float(i + 1) / Float(list.count)进度函数如下所示:
progressView.setProgress(progress, animated: true)然而,进度条并不是在每个循环上更新的。为什么会这样呢?
发布于 2016-04-21 13:43:20
您应该在主队列中使用异步方法执行此操作。
dispatch_async(dispatch_get_main_queue()) {
progressView.setProgress(progress, animated: true)
}发布于 2016-04-21 14:04:02
您需要在后台线程中运行您的循环,并且只使用主线程更新UI,在您的情况下使用progressView的进度。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0) {
for i in 0...list.count - 1 {
// Do your work here
// ...
// ...
dispatch_async(dispatch_get_main_queue()) {
progressView.setProgress(progress, animated: true)
}
}
}https://stackoverflow.com/questions/36771333
复制相似问题