我正在使用 NSTimer 在基于 OpenGL 的 iPhone 应用程序中进行一些渲染。我有一个弹出并请求用户输入的模式对话框。当用户提供输入时,我想“暂停”,例如:
[myNSTimer pause];
我使用这种语法是因为我一直在做这样的事情:
[myNSTimer invalidate];
当我希望它停止时。
如何以编程方式暂停 NSTimer?
最佳答案
只是想更新对 kapesoftware 答案的小修复:
NSDate *pauseStart, *previousFireDate;
-(void) pauseTimer:(NSTimer *)timer {
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
-(void) resumeTimer:(NSTimer *)timer {
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[pauseStart release];
[previousFireDate release];
}
关于iphone - 如何以编程方式暂停 NSTimer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/347219/