Что означает параметр finished в блоке завершения в animateWithDuration

#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, насколько я могу судить, дает очень мало информации о причинах незавершения анимации, поэтому кажется, что трудно реагировать каким-либо другим способом, кроме общего. Дайте нам знать, если вы выясните, почему они терпят неудачу в вашем случае.