NSTimer暂停计时器

时间:2012-12-20 08:15:24

标签: ios cocoa-touch nstimer

  

可能重复:
  How to Pause/Play NSTimer?

我有三个按钮start stoppause ..我的startstop按钮可以正常使用以下代码...但是按下时Pause暂停计时器..但是当我再次按下start.IT从新增加的时间继续...而不是从暂停时间....

supoose我在5秒开始暂停并等待5秒然后按开始...它应该显示5 ...但显示10 ..

因为我没有在(timer:)的{​​{1}}中提及timer!=nill ... 它将如何添加..

我有问题:

  1. start无效。
  2. Pause

2 个答案:

答案 0 :(得分:0)

-(void)pause:(NSTimer *)timer
{
  pauseStart = [NSDate dateWithTimeIntervalSinceNow:0];

  previousFireDate = [_timer fireDate];

  //[timer setFireDate:[NSDate distantFuture]];
  [_timer setFireDate:[NSDate distantFuture]];
}

答案 1 :(得分:0)

以下是我用于计时器的代码:

我存储了所有组件的时间,我的(单例)类,小时,分钟,秒值。

并且,我只是在“暂停”方法中“使”计时器“无效”,并且我存储了这些值。

请参阅,如果这有帮助。

-(void) startTimer
{
    NSLog(@"Values for timer: %d H, %d M, %d S", self.hours, self.minutes, self.seconds);

    _timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
}

-(void) pauseTimer
{
    if(_timer)
    {
        [_timer invalidate];
    }

    _timer = nil;

    self.hour = hourValue;
    self.minute = minuteValue;
    self.second = secondsValue;
}