iPhone在导航栏中添加计时器

时间:2009-08-21 06:38:22

标签: iphone timer nstimer

HI,我已经使用5个具有一些功能的视图控制器进行了简单的应用程序..我现在想要做的是在主屏幕上添加时间。并且它应该运行直到我退出应用程序..我将移动到其他视图控制器,但该计时器将运行..我将如何具有此功能?

2 个答案:

答案 0 :(得分:3)

点击此处的“计时器”部分:http://www.iphoneexamples.com/

另请参阅Apple的NSTimer Documentation

答案 1 :(得分:0)

最实用的方法是伪造它 - 也就是说,只存储开始时间戳,而不必费心地继续维护任何类型的timePassed变量。这样更容易编码,实际上更可靠,因为它很稳定。

在计时器启动的瞬间存储NSDate,并且只要您想显示或更新计时器,请使用NSDate的{​​{3}}方法,该方法返回秒数传递为NSTimeInterval,基本上是double的typedef。注意:此函数在过去的时间戳上调用时返回一个负数,这就是这里的情况。

如果您的部分显示器正在显示此时间,您可以使用timeIntervalSinceNow对象每隔一秒(或更频繁地)更新它,该对象会定期调用您更新显示的方法之一。

示例代码:

// 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];
}