В моем пользовательском элементе управления есть метод -setValue:animated:, который принимает флаг animated
.
До iOS 4 я бы написал анимацию следующим образом:
if (animated) {
[UIView beginAnimations:@"Foo"];
[UIView setAnimationDuration:5.0];
}
// ... layout views ...
if (animated) {
[UIView commitAnimations];
}
Теперь я написал это:
[UIView animateWithDuration:(animated ? 5.0 : 0.0) animations:^{
// ... layout views ...
}];
НО: это приводит к тому, что некоторые элементы не анимируются!
Я вызываю этот метод более одного раза (первый раз без, второй раз с анимацией), поэтому во второй раз анимация отменяется, устанавливая мой новый кадр «жестким» (без анимации).
Как реализовать необязательную анимацию с помощью блочного подхода?