Бесконечная CABasicAnimation останавливается
У меня бесконечная анимация (поворот изображения, тип: CABasicAnimation
) в моем UIView с помощью
animation.repeatCount = HUGE_VALF;
Когда я нажимаю новый ViewController и возвращаюсь к исходному ViewController с анимацией, содержащей View внутри, остановка вращения.
Даже если я снова настрою анимацию при вызове метода ViewController viewWillAppear
, он не будет снова вращаться.
Что я делаю неправильно?
Ответы
Ответ 1
на самом деле существует простой способ решить эту проблему
настройка анимации на этот
animation.removedOnCompletion = false
и сам слой не разрушается, когда NavigationController сдвигает другое представление ViewController, потому что UINavigationController получил свойство viewControllers
, которое сохранит исходный viewController и, следовательно, его представление и ваш анимированный слой. Этот объект CABasicAnimation уничтожен, когда вид удален из интерфейса, даже если вы установили его repeatCount в бесконечность. Поэтому установите removedOnCompletion
в false, чтобы сохранить его
Ответ 2
Когда слой удаляется с экрана, он теряет анимацию. Вы должны добавить их назад, как только слой снова появится на экране.
viewWillAppear:
слишком рано, потому что к этому времени на экране не отображается ни один экран. Попробуйте добавить анимацию в viewDidAppear:
.