首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >创建iOS计时器

创建iOS计时器
EN

Stack Overflow用户
提问于 2011-07-16 02:05:25
回答 2查看 39.6K关注 0票数 18

我正在尝试创建一个“秒表”类型的功能。我有一个标签(用来显示经过的时间)和两个按钮(启动和停止计时器)。start和stop按钮分别调用startTimerstopTimer函数。计时器每秒触发并调用increaseTimerCount函数。我还有一个依瓦尔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];
}

问题是,当按下start按钮时,似乎会有延迟(我假设这是由于每次调用startTimer时重新初始化计时器)。有没有办法只暂停和恢复计时器而不使其无效并重新创建它?或者是一种更好的/替代的方式呢?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-16 02:10:22

您不能在不使用invalidate的情况下暂停计时器。您可以做的是添加

[timer fire];

startTimer中创建计时器之后。

票数 9
EN

Stack Overflow用户

发布于 2012-07-22 10:43:46

有点过时了,但如果有人还感兴趣的话...

不要“停止”计时器,而是在暂停时停止递增。

- (void)increaseTimerCount
{
   if (!self.paused){
      timerCount++
   }

   timerCountLabel.text = [NSString stringWithFormat:@"%d", timerCount];
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6711328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档