Вызов завершения анимации UIView?
Можно ли настроить функцию для вызова после завершения моей анимации? Я хочу угадать UIView
, а затем удалить его из superView
.
Ответы
Ответ 1
Да, это легко:
При настройке анимации
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myAnimationStopped:finished:context:)];
И определите свой метод следующим образом:
-(void)myAnimationStopped:(NSString *)animationID
finished:(NSNumber *)finished
context:(void *)context {
// fancy code here
}
Не обязательно self
и этот метод, конечно.
Ответ 2
Анимационные блоки были введены в iOS4. Apple рекомендует использовать их, и новые методы в основном запрашивают блоки завершения, которые заменяют обратные вызовы. Например:
[UIView animateWithDuration:0.5f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[myView removeFromSuperview];
}];