如何在swift中更新计时器间隔?

时间:2016-06-27 01:08:38

标签: xcode swift nstimer

我正在开发一种游戏,其中图像的变化率随时间而变化。首先,图像每两秒钟改变一次,然后它会加速。

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
}

问题是它加速太快而且不会停止。最终,变化值变为负值。

任何使这项工作的方法?

1 个答案:

答案 0 :(得分:4)

你忘记了两件事。

  • 首先,每次计时器触发时都会创建一个新的重复计时器。在创建新计时器之前,您需要invalidate旧计时器。而且既然你要更换计时器,那么<​​em>不希望这是一个重复计时器;您需要说false而不是true

  • 其次,如果您不希望change变小,您需要某种条件来检查change变小的程度,如果您不想要为了得到更快,不要减少它。