Перезапуск анимации ios swift - PullRequest
0 голосов
/ 28 октября 2018

Анимация перестает работать после того, как я

  1. переходит на другой контроллер представления и возвращается
  2. приложение переходит в фоновый режим и затем возвращается на передний план

Я использую этот код (в viewwillappear) для достижения мигающей анимации

    UIView.animate(withDuration: 1.0, delay: 0.4, options:[ UIViewAnimationOptions.curveEaseOut , .repeat], animations: {

        self.logoLabel1.alpha = 0.0
        self.logoLabel2.alpha = 0.0

    }, completion: nil)

Кто-нибудь может мне помочь?спасибо.

1 Ответ

0 голосов
/ 28 октября 2018

Да, это ожидаемое поведение.Анимации остановятся, когда представление исчезнет, ​​либо свернув приложение, либо показав другой контроллер вида.Переместите код анимации в viewDidAppear, и анимация не остановится, когда вы перейдете к любому другому viewcontroller и вернетесь.Для обработки случая, когда анимация останавливается, когда приложение переходит в фоновый режим, используйте следующий код:

Внутри вашего viewDidAppear,

NotificationCenter.default.addObserver(self, selector: #selector(willEnterForeground), name: .UIApplicationWillEnterForeground, object: nil)

и в вашем viewWillDisappear,

NotificationCenter.default.removeObserver(self, name: .UIApplicationWillEnterForeground, object: nil)

и напишите эту функцию в вашем viewcontroller,

@objc func willEnterForeground() {
    // your animations
    UIView.animate(withDuration: 1.0, delay: 0.4, options:[ UIViewAnimationOptions.curveEaseOut , .repeat], animations: {

        self.logoLabel1.alpha = 0.0
        self.logoLabel2.alpha = 0.0

    }, completion: nil)
}
...