嗨,我已经用 5 个具有某些功能的视图控制器制作了简单的应用程序。我现在要做的是在主屏幕上添加一个时间。它应该一直运行,直到我退出应用程序..我也会移动到其他视图控制器,但是那个计时器会运行..我将如何拥有这个功能?
问问题
535 次
2 回答
3
在此处查看“计时器”部分:http ://www.iphoneexamples.com/
另外,请参阅 Apple 的NSTimer 文档
于 2009-08-21T06:56:12.170 回答
0
最实用的方法是伪造它——也就是说,只存储开始时间戳,而不必费心持续维护任何类型的timePassed
变量。这既更容易编码,实际上也更可靠,因为它是稳定的。
在计时器启动的那一刻存储 an NSDate
,并且每当您想显示或更新计时器时,请使用NSDate
'stimeIntervalSinceNow
方法,该方法返回作为 an 传递的秒数NSTimeInterval
,这基本上是 double 的 typedef。注意:这个函数在过去的时间戳上调用时返回一个负数,这里就是这种情况。
如果这次显示的部分显示,您可以使用一个对象每隔一秒(甚至更频繁)更新它,该NSTimer
对象定期调用您更新显示的方法之一。
示例代码:
// In the initialization code:
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
selector:@selector(secondPassed:) userInfo:nil repeats:YES];
// Later:
// (This code assumes #minutes < 60.)
- (void) secondPassed: (NSTimer:) timer {
NSTimeInterval secondsPassed = -1 * [self.timerStart timeIntervalSinceNow];
int minutes = (int)(secondsPassed / 60);
int seconds = (int)(seconds - minutes * 60);
NSString* timerString = [NSString stringWithFormat:@"%02d:%02d",
minutes, seconds];
[self updateTimerDisplay:timerString];
}
于 2009-08-21T06:59:19.603 回答