how to pause and resume NSTimer in iphone

前端 未结 7 1649
逝去的感伤
逝去的感伤 2020-12-06 11:07

hello I am developing small gameApp. I need to pause the timer,when user goes to another view [say settings view]. when user comes back to that view , I need to resume the

7条回答
  •  臣服心动
    2020-12-06 11:48

    you can use this code to implement pause and resume functionality in NSTimer

    //=========new timer update method=============
    
    -(void) updateTimer {
    
        NSDate *currentDate = [NSDate date];
    
        NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate];
        NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    
    
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"mm:ss.S"];
        [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
    
        NSString *timeString = [dateFormatter stringFromDate:timerDate];
        lblMessage.text = timeString;
        pauseTimeInterval = timeInterval;
    
       }
    
     -(IBAction) startBtnPressed:(id)sender
        {
    //=============================new update with start pause==================
    if(running == NO) {
        running = YES;
    
        startDate = [NSDate date] ;
        startDate = [[startDate dateByAddingTimeInterval:((-1)*(pauseTimeInterval))] retain];
        stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
    }
    else {
        running = NO;
        [stopWatchTimer invalidate];
        stopWatchTimer = nil;
        [self updateTimer];
    }
    }
    

    declare in .h file NSDate startDate;

    NSTimeInterval pauseTimeinterval; and in viewdidload pausetimeInterval=0.0; good luck

提交回复
热议问题