これは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";
}