如何更新 swift 中的计时器间隔?
How to update timer interval in swift?
我正在开发一款图像变化率随时间变化的游戏。起初图像每两秒更改一次,然后它会加速。
var change = 2.0
func setupGame(){
change = 2.0
changeImage()
}
func changeImage(){
timer = NSTimer.scheduledTimerWithTimeInterval(change, target: self, selector: #selector(SecondViewController.changeColors), userInfo: nil, repeats: true)
change -= 0.1
}
问题是速度太快了,根本停不下来。最终变化值变为负值。
有什么方法可以让它发挥作用吗?
你忘记了两件事。
首先,您将在每次计时器触发时创建一个新的重复计时器。在创建新计时器之前,您需要 invalidate
旧计时器。并且由于您无论如何都要更换计时器,所以您不希望这是一个重复计时器;你需要说 false
而不是 true
.
其次,如果您不希望 change
继续变小,您需要某种条件来检查 change
变得有多小,如果您不想变得更快,不要减少它。
我正在开发一款图像变化率随时间变化的游戏。起初图像每两秒更改一次,然后它会加速。
var change = 2.0
func setupGame(){
change = 2.0
changeImage()
}
func changeImage(){
timer = NSTimer.scheduledTimerWithTimeInterval(change, target: self, selector: #selector(SecondViewController.changeColors), userInfo: nil, repeats: true)
change -= 0.1
}
问题是速度太快了,根本停不下来。最终变化值变为负值。
有什么方法可以让它发挥作用吗?
你忘记了两件事。
首先,您将在每次计时器触发时创建一个新的重复计时器。在创建新计时器之前,您需要
invalidate
旧计时器。并且由于您无论如何都要更换计时器,所以您不希望这是一个重复计时器;你需要说false
而不是true
.其次,如果您不希望
change
继续变小,您需要某种条件来检查change
变得有多小,如果您不想变得更快,不要减少它。