Я упомянул DOC, и он сказал:
Завершение
... Этот блок не имеет возвращаемого значения и принимает один логический аргумент, который указывает, действительно ли анимация завершена до того, как был вызван обработчик завершения....
Но я считаю, что независимо от того, используете ли вы параметр bool или нет, блок completion:
всегда будет выполняться после animations:
. Как и два простых фрагментарных фрагмента кода, приведенных ниже, оба они делают то же самое.
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[myView removeFromSuperview];
}];
и
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
if (finished) [myView removeFromSuperview];
}];
И я считаю, что большинство людей (включая меня) используют первый (даже пример официального документа Apple). Таким образом,
- какой параметр
finished
используется здесь точно? - или какая ситуация будет использоваться?