簡體   English   中英

如何更新進度條擴展?

[英]How can I update progress bar extension?

我有一個在導航欄中加載進度條的擴展程序。

extension UINavigationController {

    public override func viewDidLoad() {
        super.viewDidLoad()

        let progressView = UIProgressView(progressViewStyle: .bar)
        self.view.addSubview(progressView)
        let navBar = self.navigationBar

        self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[navBar]-0-[progressView]", options: .directionLeadingToTrailing, metrics: nil, views: ["progressView" : progressView, "navBar" : navBar]))
        self.view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[progressView]|", options: .directionLeadingToTrailing, metrics: nil, views: ["progressView" : progressView]))

        progressView.translatesAutoresizingMaskIntoConstraints = false
        progressView.setProgress(0.0, animated: true)
        
    }
}

在我的 UIViewController 類中,如何使用progressView.setProgress(0.0, animated: true)更新進度條? 我想將@IBAction 中的值增加到 0.1。

由於您不能在擴展中使用存儲的屬性,因此您必須添加一種方法來識別進度視圖,例如通過分配標簽

...
let progressView = UIProgressView(progressViewStyle: .bar)
progressView.tag = 1024
self.view.addSubview(progressView)
...

然后你可以創建一個更新進度視圖的方法

func updateProgressView(value: Float) {
    let progressView = view.subviews.first{$0.tag == 1024} as! UIProgressView
    progressView.setProgress(value, animated: true)
}

或者

func increaseProgress() {
    let progressView = view.subviews.first{$0.tag == 1024} as! UIProgressView
    progressView.progress += 0.1
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM