#iphone #ios #animation
#iPhone #iOS #Анимация
Вопрос:
Я пытаюсь понять, как работают анимации просмотра в iOS; в настоящее время у меня есть анимация, которую я создаю с помощью:
(void)animateWithDuration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
options:(UIViewAnimationOptions)options
animations:(void (^)(void))animations
completion:(void (^)(BOOL finished))completion
Но у меня есть вопрос, касающийся параметра finished в блоке завершения; какой параметр finished я несколько понимаю в том смысле, что если finished — ДА, анимация действительно произошла, что хорошо, но что это значит, когда для него установлено значение NO и каков общий способ решенияпри этом обычно, особенно если вы хотите связать анимации (вызывая следующую анимацию в блоке завершения), которые работают в одном и том же представлении?
Причина, по которой я спрашиваю, заключается в том, что иногда по непонятным мне причинам он возвращает NO at, поскольку представление присутствует в иерархии представлений, и другие анимации не вмешиваются.
Ответ №1:
Это означает, что по той или иной причине анимация не завершилась. Представление могло быть удалено из его супервизора, например, или к нему могла быть применена другая анимация, или по ряду других причин, наиболее известных Apple. Как вы с этим справляетесь, зависит от вас. Вы можете снова запустить всю цепочку анимации, начать с последней анимации или следующей.
Комментарии:
1. ну, конечно, это зависит от меня, но было бы неплохо узнать, какова фактическая причина незавершения, чтобы я мог действовать соответствующим образом. Большую часть времени он выполняет свою работу, но есть некоторые ситуации, в которых я не получаю возврата, пока я исключил: вид не отображается, вид имеет другие анимации, вид или любой из его подвидов не имеет правильного размера.
2. @MrJre Документ Apple, насколько я могу судить, дает очень мало информации о причинах незавершения анимации, поэтому кажется, что трудно реагировать каким-либо другим способом, кроме общего. Дайте нам знать, если вы выясните, почему они терпят неудачу в вашем случае.