Перезапустите UIView повторить анимацию - PullRequest
0 голосов
/ 28 июня 2018

Я установил повторяющуюся анимацию в iOS:

[UIView animateKeyframesWithDuration:duration 
                               delay:0.0 
                             options:UIViewKeyframeAnimationOptionRepeat 
                          animations:^{
    ...
}];

Как оказалось, когда я представляю контроллер представления, а затем отклоняю его - анимация, похоже, зависла.

Я исследовал это и обнаружил, что анимация останавливается, когда приложение переходит в фоновый режим. Но здесь это контроллер представления, представленный сверху. Может ли это быть здесь так же?

Я нашел решение - остановить анимацию до того, как приложение выйдет в фоновый режим, как показано в этой статье Apple: https://developer.apple.com/library/archive/qa/qa1673/_index.html

Я пробовал это решение, но оно не сработало для меня. После отображения контроллера представления вызывается блок завершения анимации.

Как мне разрешить эту ситуацию анимации замораживания?

1 Ответ

0 голосов
/ 28 июня 2018

Чтобы перезапустить анимацию после представления другого вида, поместите ее в viewWillAppear

Если ваша анимация запускается через некоторое время или с условием, просто добавьте Bool, например animationHasStarted, проверьте его в viewWillAppear, чтобы увидеть, следует ли запускать анимацию или нет

...