一尘不染

如何快速暂停和恢复NSTimer.scheduledTimerWithTimeInterval?

swift

我正在开发游戏,我想创建一个暂停菜单。这是我的代码:

self.view?.paused = true

NSTimer.scheduledTimerWithTimeInterval仍在运行…

 for var i=0; i < rocketCount; i++ {
    var a: NSTimeInterval = 1
    ii += a
    delaysShow = 2.0 + ((stimulus + interStimulus) * ii)       
    var time3 = NSTimer.scheduledTimerWithTimeInterval(delaysShow!, target: self, selector: Selector("showRocket:"), userInfo: rocketid[i], repeats: false)
 }

我想time3在玩家单击暂停菜单时暂停计时器,并在玩家返回游戏时继续运行计时器,但是我如何暂停NSTimer.scheduledTimerWithTimeInterval?请帮帮我。


阅读 655

收藏
2020-07-07

共1个答案

一尘不染

您需要使其无效并重新创建。然后isPaused,如果您使用相同的按钮暂停和恢复计时器,则可以使用bool来跟踪状态:

var isPaused = true
var timer = NSTimer()    
@IBAction func pauseResume(sender: AnyObject) {     
    if isPaused{
        timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("somAction"), userInfo: nil, repeats: true)
        isPaused = false
    } else {
        timer.invalidate()
        isPaused = true
    }
}
2020-07-07