0

嗨,我已经用 5 个具有某些功能的视图控制器制作了简单的应用程序。我现在要做的是在主屏幕上添加一个时间。它应该一直运行,直到我退出应用程序..我也会移动到其他视图控制器,但是那个计时器会运行..我将如何拥有这个功能?

4

2 回答 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 回答