Я реализовал UIProgressView в качестве таймера обратного отсчета, его значение уменьшилось с 1,0 до 0,0 за 1,5 секунды.Сделать UIProgressView как таймер обратного отсчета
Он уже работал, но проблема в том, сколько времени потребовалось больше, чем 1,5 секунд, это было около 2,0 - 2,5 секунды, пока значение зрения прогресс достигнет 0,0
Для того, чтобы работать в только 1,5, я уменьшил значение прогресса на 0.001 каждый раз, когда оно вызывается. Метод уменьшения - это вызов после интервала 0,0015 секунды.
Ниже приведено, как я это делаю. Я не знаю, есть ли что-то неправильное, чтобы заставить его работать дольше, чем 1,5 секунды?
- (void)decreaseProgress {
if (currentProgress > 0.0000f) {
currentProgress -= 0.001f;
[_timeLineProgress setProgress:currentProgress animated:YES];
[self performSelector:@selector(decreaseProgress) withObject:self afterDelay:0.0015 inModes:@[NSDefaultRunLoopMode]];
} else {
[self stopTimer];
}
}
Вы должны использовать NSTimer вместо и основывать прогресс на реальное истекшее время. – rmaddy
@rmaddy это сделает какие-то большие различия? Потому что я использовал NSTimer, но все же получил ту же проблему. – JozackOverFlow
Вот почему прогресс должен основываться на фактическом прошедшем времени, а не на каком-то увеличенном значении. – rmaddy