如何更新 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 变得有多小,如果您不想变得更快,不要减少它。