Меня интересуют новые анимации блоков в iOS 4. То есть синтаксис
[UIView animateWithDuration:.25 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^
{
someview.alpha = 0
} completion::^(BOOL finished)
{
focusAndExposureBox.hidden = true;
}];
У меня есть случай, когда я использую распознаватели жестов и анимирую представление в конце жеста. У меня есть обработчик завершения, который устанавливает для некоторых видов скрытое значение (по соображениям производительности мне нужно это сделать). Часто взаимодействие блокируется из-за установки скрытого свойства. Мое предыдущее решение — использовать предыдущий стиль анимации с обработчиком animationDidStop.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.25];
someview.alpha = 0;
[UIView commitAnimations];
Однако я хотел бы использовать более новый стиль, если это возможно, потому что он имеет более чистый метод выполнения действий после завершения анимации и рекомендуется Apple. Итак, в настоящее время я использую этот хакер:
[UIView animateWithDuration:1 delay:0
options:UIViewAnimationOptionAllowUserInteraction animations:^{
someview.alpha = 0;
} completion:^(BOOL finished) {
[someview performSelector:@selector(setHidden:) withObject:[NSNumber numberWithBool:true] afterDelay:1];
}];
Кто-нибудь знает способ предотвратить блокировку в этом случае?