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)
}
我是 Swift 的新手,我在使用 progressView 时遇到了麻烦。 我使用
启动我的 ProgressView timeBarself.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)
}