繁体   English   中英

Swift 3:UIProgressView没有更新进度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM