Вам необходимо создать метод обратного вызова, который выполняется, когда заканчивается первая анимация. Этот обратный вызов используется для создания отмененной анимации. Имейте в виду, что не существует постепенного «состояния отбора», как для прозрачности. Вы должны использовать
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView beginAnimations:@"animateIn" context:NULL];
Из документов Apple:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
Ваш метод должен принимать следующие аргументы:
animationID
NSString, содержащая необязательный идентификатор, предоставляемый приложением. Это идентификатор, который передается в метод beginAnimations: context:. Этот аргумент может быть ноль.
закончил
Объект NSNumber, содержащий логическое значение. Значение YES, если анимация дошла до завершения, прежде чем она остановилась, или NO, если это не так.
контекст
Необязательный контекст, предоставляемый приложением. Это данные контекста, передаваемые в beginAnimations: context: метод. Этот аргумент может быть ноль.
Когда анимация завершается, вызывается callback animationDidStop и передается в строке @ "animateIn". Вы можете использовать этот метод, чтобы проверить, какая анимация была вызвана, и обработать ее.