[英]Swift 3 : UIProgressView didn't update progress
我在下面编写了代码以更新progressView,但它仅在完成循环后才反映在屏幕上,并显示100%完成。 哪里不对了?
@IBOutlet weak var progressView: UIProgressView!
var totalCount = 100
var count = 0
for (_ in 0...100) {
DispatchQueue.main.async(execute: { () -> Void in
self.progressView.progress = Float(count) / Float(totalCount)
})
print("%: \(Float(count) / Float(totalCount))")
count += 1
}
您的代码没有执行任何操作,因此几乎不会立即执行。
如果您有效地将ProgressView更新设置为100%,并且没有延迟,则不会看到该更新。
请检查 :
class ViewController: UIViewController {
@IBOutlet weak var progressView: UIProgressView!
var progressBarTimer:Timer!
var totalCount = 100
var count = 0
override func viewDidLoad() {
super.viewDidLoad()
self.progressBarTimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.updateProgressBar), userInfo: nil, repeats: true)
}
func updateProgressBar(){
let progress = Float(count) / Float(totalCount)
self.progressView.progress = progress
print("%: \(progress)")
if progress == 1.0 {
progressBarTimer.invalidate()
}
count += 1
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.