2011-11-11 34 views
0

這是我的iPhone秒錶應用程序的代碼,當你點擊開始按鈕時,它將以正確的格式數出來,所有的工作正常,以及停止按鈕和重置。問題是每次我停下來然後重新開始它會創建一個新的計時器,並且不會從最後一個繼續。我如何創建一個暫停,並能夠從當前時間繼續?NSTimer iPhone從當前時間恢復

感謝

NSDate *startDate; 
NSTimer *stopWatchTimer; 


-(void)showActivity { 

    NSDate *currentDate = [NSDate date]; 
    NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate]; 
    NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"mm:ss.SS"]; 
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]]; 
    NSString *timeString=[dateFormatter stringFromDate:timerDate]; 
    stopWatchLabel.text = timeString; 
    [dateFormatter release]; 
} 

- (IBAction)onStartPressed:(id)sender { 
    startDate = [[NSDate date]retain]; 
    stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1/10 target:self selector:@selector(showActivity) userInfo:nil repeats:YES]; 
} 

- (IBAction)onStopPressed:(id)sender { 
    [stopWatchTimer invalidate]; 
    stopWatchTimer = nil; 
    [self showActivity]; 
} 

- (IBAction)reset:(id)sender; { 
    stopWatchLabel.text = @"00:00.00"; 
} 

回答

0

不要在每次開始按下時設置startDate。只是第一次,並在任何重置後。布爾狀態變量可以幫助保持跟蹤。

1

暫停時,你可能想保持一個時間間隔,到目前爲止爲伊娃

accumulatedInterval =的currentdate timeIntervalSinceDate:的startDate]。

並一直添加到timeInterval。