您的位置:首页 > 其它

NSTimer 怎么暂停继续

2016-07-04 17:45 309 查看
转载自:http://blog.csdn.net/chentoo/article/details/8667918

那,API里面NSTimer 是木有暂停继续的方法的,只有fire和invalidate,前者是开工的意思,后者是废掉的意思,如果用废掉来代替暂停的功能?显然是不对的。

那肿么办呢?

其实NSTimer 有一个属性叫 fireDate ,啥意思呢?fireDate么,就是fire 的开始时间所以我们就有了思路了。

暂停: [timer setFireDate:[NSDate distantFuture]]; distantFuture,就是问你未来有多远呢?好远好远就是无法到达的时间,所以 timer就一直等待不 fire了。也就是暂停了。

继续: [timer setFireDate:[NSDate date]]; 这个当然就是把fire 的时间设置为当前时刻,所以timer就立刻开工啦!

完事!

------------------------------------------------------------------------------
http://www.cnblogs.com/crazyac/articles/2497477.html
NSTimer的暂停和继续

可以用NSTimer设置访问函数的时间周期:

countTime = [NSTimerscheduledTimerWithTimeInterval:(1.0/60.0) 
                                     target:self 
                                   selector:@selector(updateBoard) 
                                   userInfo:nil 
                                    repeats:YES];
 
 

即每1/60秒调用一次updateBoard函数
但是有时候游戏里要暂停,可以这样:

[countTime setFireDate:[NSDate distantFuture]];


需要继续的时候

[countTime setFireDate:[NSDate date]];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: