Я использую nstimer
, чтобы показать таймер обратного отсчета в ярлыке. Я могу запустить таймер и показать отсчет в метке, но таймер переходит на следующую секунду, а не показывает каждую секунду. Если таймер обратного отсчета установлен на 10 секунд, он показывает только 9,7,5,3,1 на метке таймера обратного отсчета.nstimer count down не работает как ожидалось
Ниже приведен мой код.
NSTimer *tktTimer;
int secondsLeft;
- (void)startTimer {
secondsLeft = 10;
tktTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
}
-(void) updateCountdown {
int hours, minutes, seconds;
secondsLeft--;
NSLog(@"secondsLeft %d",secondsLeft);//every time it is printing 9,7,5,3,1 but should print 9,8,7,6,5,4,3,2,1,0
hours = secondsLeft/3600;
minutes = (secondsLeft % 3600)/60;
seconds = (secondsLeft %3600) % 60;
countDownlabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
if (--secondsLeft == 0) {
[tktTimer invalidate];
countDownlabel.text = @"Completed";
}
}
Любая помощь будет действительно оценена.
Если я использую это условие if, то я столкнулся с проблемами, чтобы аннулировать таймер. Можете ли вы отредактировать свой ответ, показывая код, чтобы аннулировать таймер. – Madhu
оглядываясь на код и как он работает, это загорится на «1», а не на «0» - просто проверьте, будет ли это лучше. Я уточню свой ответ. – EvilGeniusJamie