无法在 iOS 中设置进度条进度两次?

Unable to set progress bar progress twice in iOS?

我有 UIProgressView。在开始编辑 UITextField 的文本时,我将进度条的值设置为 1 。在那之前,最初我让它进步到 0.1 。但它只设定了一次进步。如果我首先将进度设置为 0.1,然后它不会将进度设置为 1.please 告诉我问题是什么?

func textFieldDidBeginEditing(_ textField: UITextField) {
    setViewBottomColor()

    var view:BottomView?

    if textField == textFieldEmail {
        view = self.bottomViewFirst
        view?.trackTintColor = Constant.AppColor.viewBottom
        view?.progressTintColor = Constant.AppColor.purpleViewColor

    }
    else if textField == textFieldPassword {
        view = self.bottomViewSecond
        view?.trackTintColor = Constant.AppColor.viewBottom
        view?.progressTintColor = Constant.AppColor.purpleViewColor
    }
    if view != nil {
        view?.setProgress(1, animated: true)
        UIView.animate(withDuration: 1.0, animations: {
            view?.layoutIfNeeded()
        }, completion: { (finish) in
        })
}
}

func setViewBottomColor() {

    self.bottomViewFirst.trackTintColor = Constant.AppColor.viewBottom
    self.bottomViewFirst.progressTintColor = Constant.AppColor.purpleViewColor
    self.bottomViewFirst?.setProgress(0.1, animated: false)
    self.bottomViewFirst?.layoutIfNeeded()

}

检查下面我用来检查的代码片段。它工作正常。

您可以检查以下几点:

  1. 所有 IBOutlets 连接都必须存在。
  2. 如果您使用自定义 UIProgressView 作为 BottomView,那么您还必须更改 xib/storyboard 中的进度视图 class。
  3. 如果仅更改进度值,则不需要查看动画。

     func textFieldDidBeginEditing(_ textField: UITextField) {
    
        resetProgresses()
        var view = UIProgressView()
    
        if textField == t1 {
            view = self.progressBar
            view.trackTintColor = .red
            view.progressTintColor = .green
    
        }
        else if textField == t2 {
            view = self.progressBar2
            view.trackTintColor = .green //Constant.AppColor.viewBottom
            view.progressTintColor = .red//Constant.AppColor.purpleViewColor
        }
    
        if view != nil {
            view.setProgress(1, animated: true)
        }
    
      }
    
     func resetProgresses()  {
        self.progressBar?.setProgress(0.1, animated: true)
        self.progressBar2?.setProgress(0.1, animated: true)
    
      }