У меня есть какой-то счетчик, построенный из нескольких UIScrollViews, содержащих изображения чисел.Счетчик периодически обновляется старым и новым номером и продолжительностью анимации.Обновление на самом деле для цикла всегда увеличивает счетчик на +1.Когда я помещаю это в блок анимации, анимация выполняется так, как будто я только что обновил ее до toValue, как будто нет цикла for.
Я хочу, чтобы анимация выполнялась линейно, я хочу видеть каждое число(в случае, если анимация не слишком быстрая, что не так).В каком-то странном сценарии счетчик просто переходит на некоторое случайное число в интервале [fromValue, toValue] без анимации, а затем анимированный - на toValue.
Есть предложения?Вот код
- (void) setDigit:(UIScrollView*)digit withValue:(int)value
{
CGFloat height = digit.frame.size.height;
[digit setContentOffset:CGPointMake(0, height * value) animated:NO];
}
- (void) updateValue:(int) value
{
for (int i = 5; i >= 0; i--)
{
int a = value % 10;
value = value / 10;
[self setDigit:[digits objectAtIndex:i] withValue:a];
}
}
- (void) transitFromValue:(int)fromValue toValue:(int)toValue withDuration:(float)duration
{
[UIView animateWithDuration:duration
delay:0.0
options:UIViewAnimationCurveLinear
animations:^ {
for (int tValue = fromValue; tValue <= toValue; tValue++)
{
[self updateValue:tValue];
}
}
completion:^(BOOL finished) {
}];
}