【问题标题】:how I can pause and resume my NSTimer我如何暂停和恢复我的 NSTimer
【发布时间】:2015-07-24 13:47:22
【问题描述】:

我有一个已经可以工作的 NSTimer,但是希望在您单击按钮时暂停它。除了暂停之外,这个按钮将我重定向到我的另一个视图,然后当我回到主视图时,他必须从你离开的地方继续。我已经有了暂停按钮,我打算继续计数调用 viewWillAppear 上的方法

这是我的代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setUp];
}

- (void) setUp {
    _startDate = [NSDate date];
    _timer = [NSTimer scheduledTimerWithTimeInterval: 1.0/100.0 target: self selector: @selector(timerUpdating) userInfo: nil repeats: true];
}

-(void)timerUpdating {

    NSDate *currentDate = [NSDate date];
    NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:_startDate];
    NSDate *timerDate  = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    NSDateFormatter *dateFormater = [[NSDateFormatter alloc]init];
    [dateFormater setDateFormat:@"mm:ss"];
    [dateFormater setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
    NSString *timeString = [dateFormater stringFromDate:timerDate];
    self.timerLabel.text = timeString;
    self.pauseTimeInterval = &(timeInterval);
}

- (IBAction)timerActionPause:(id)sender {
}

【问题讨论】:

  • How to Pause/Play NSTimer? 的可能重复项
  • 不是。但我会看看这个话题。
  • 不要使用已接受答案的代码;太复杂了。

标签: ios objective-c iphone ios8 nstimer


【解决方案1】:
- (void)startTimer {
    if(_timer != nil) { // To make sure 
        [self stopTimer];
    }
    _timer = [NSTimer scheduledTimerWithTimeInterval: 1.0/100.0 target: self selector: @selector(timerUpdating) userInfo: nil repeats: true];
}

- (void)stopTimer {
    [_timer invalidate];
    _timer = nil;
}

- (void)resetTimer {
    [self stopTimer];
    [self startTimer];
}

【讨论】:

  • 看问题,我已经从那里复制了定时器间隔和选择器
  • 啊。这是一个疯狂的世界。哦,好吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 2020-08-05
  • 2020-06-14
相关资源
最近更新 更多