我正在使用这些语句在进度条上设置进度,具体取决于seconds
变量。下面的函数每1秒被Timer对象调用一次。 7秒钟后,将调用refreshApp()
函数。
func runTimedCode() {
if seconds == 0 {
self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false)
refreshApp()
seconds += 1
}
else if seconds == 7 {
self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false)
seconds = 0
} else {
self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false)
seconds += 1
}
}
它可以正常工作,但是当我将第二条语句设为if seconds == 7 {
而不是else if seconds == 7
时,进度条似乎不是从一个完全空的位置开始(从7处的完全填充处跳转秒,直到1秒后填充)。
有人可以帮助我了解行为改变的原因吗?谢谢!
答案 0 :(得分:2)
将else if seconds == 7
更改为if seconds == 7
时,当seconds
为{{1}时,您将输入第一行代码和 }。如果您使用0
,则在else if seconds == 7
满足后,整个if
语句就会完成。
if seconds == 0
let seconds = 0 if seconds == 0 { print("block 1") } else if seconds == 7 { print("block 2") } else { print("block 3") }
block 1
if seconds == 0 { print("block 1") } if seconds == 7 { print("block 2") } else { print("block 3") }