ProgressView 进度停留在 1.0 或 0.0

ProgressView progress stuck at 1.0 or 0.0

我是 Swift 的新手,我在使用 progressView 时遇到了麻烦。 我使用

启动我的 ProgressView timeBar
self.timeBar.setProgress(10.0, animated: true)

然后我尝试获取 timeBar 在 10 秒内的值(在 0.0 和 1.0 之间):

print(timeBar.progress) 

但是我在时间栏沿 progressView 的任何地方得到 1.0 或 0.0。我在发布前获得 0.0,在其他任何地方获得 1.0。

那怎么抓进度呢?谢谢 ;)

好的,在界面生成器中,您可以为进度条设置 min-max。默认情况下,它是 0.0 到 1.0 作为 floating-point。您需要将其更改为最小值 0.0 到最大值 10.0。然后我会解释一下。该方法 .setProgress() 只是设置它并为其设置动画。无法从该进度条获取它当前的值,因为该值是立即设置的,然后动画运行,动画不会随时间改变进度值。进度首先为 0,然后设置为 1,然后设置动画,就像设置了一个值一样。

处理此问题以获取值的正确方法是使用计时器、下载、上传或其他指示真正“进度”的方法。例如,从 1 秒进步到 10 秒,每秒是 10 的 0.1 或 10%。这是一个简单的例子。另一个例子可能是点击 UIButton 将进度值提高 1.0。

var timer = Timer()

func updateProgress() {
    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: false)
} 

@objc func timerAction(){
   if timeBar.progress >= 10.0 {
       timer.invalidate()
       return
   }


   timeBar.setProgress(timebar.progress + 1.0, animated: true)
}