目标c-创建一个iOS计时器



我正在尝试创建一个"秒表"类型的功能。我有一个标签(显示经过的时间(和两个按钮(启动和停止计时器(。启动和停止按钮分别调用startTimerstopTimer功能。计时器每隔一秒钟就会触发并调用increaseTimerCount函数。我还有一个ivar timerCount,它可以保存以秒为单位的经过时间。

- (void)increaseTimerCount
{
    timerCountLabel.text = [NSString stringWithFormat:@"%d", timerCount++];
}
- (IBAction)startTimer
{
    timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(increaseTimerCount) userInfo:nil repeats:YES];
}
- (IBAction)stopTimer
{
    [timer invalidate];
    [timer release];
}

问题是按下启动按钮时似乎有延迟(我认为这是由于每次调用startTimer时都会重新初始化计时器(。有没有什么方法可以暂停并恢复计时器,而不使其无效并重新创建它?还是一种更好/替代的方式?

谢谢。

有点过时,但如果有人仍然感兴趣。。。

不要"停止"计时器,而是在暂停期间停止递增,例如

- (void)increaseTimerCount
{
   if (!self.paused){
      timerCount++
   }
   timerCountLabel.text = [NSString stringWithFormat:@"%d", timerCount];
}

如果不使用invalidate,就无法暂停计时器。你能做的就是添加

[timer fire];

startTimer中创建计时器之后。

相关内容

最新更新