NSTimer 有一个属性叫 fireDate
。
fireDate
就是 fire 的开始时间所以我们就有思路了。
- 暂停:
[timer setFireDate:[NSDate distantFuture]];
distantFuture
就是问你未来有多远呢?好远好远就是无法到达的时间,所以 timer就一直等待不 fire了。也就是暂停了。
- 继续:
[timer setFireDate:[NSDate date]];
这个当然就是把fire 的时间设置为当前时刻,所以timer就立刻开工啦!
完事!
有时候可能会有这种定时器 ,每0.1秒调用一次refresh函数
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1
target:self
selector:@selector(refresh)
userInfo:nil
repeats:YES];
但是有时候游戏里要暂停,可以这样:
[self.timer setFireDate:[NSDate distantFuture]];
需要继续的时候
[self.timer setFireDate:[NSDate date]];