Изменить willEnterForegroundNotification
на didBecomeActiveNotification
следующим образом:
NotificationCenter.default.addObserver(self, selector: #selector(fadeText), name: UIApplication.didBecomeActiveNotification, object: nil)
Тогда у вашего селектора должно быть начальное альфа-значение для self.view:
@objc func fadeText() {
self.view.alpha = 1
fadeInThenOut(label: label, delay: 0)
}
Теперь вам не нужен этот код в ViewDidAppear
.
Весь ваш код должен выглядеть следующим образом:
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(fadeText), name: UIApplication.didBecomeActiveNotification, object: nil)
}
func fadeInThenOut(label : UILabel, delay: TimeInterval) {
UILabel.animate(withDuration: 2.0, delay: delay, options: [UILabel.AnimationOptions.autoreverse, UILabel.AnimationOptions.repeat], animations: {
self.view.alpha = 0
}, completion: { (finished: Bool) in
print("done")
})
}
@objc func fadeText() {
self.view.alpha = 1
fadeInThenOut(label: textLabel, delay: 0)
}
Обновлено: приведенный выше код анимирует self.view, а не textLabel. Если вы хотите анимировать только ярлык, измените self.view.alpha
на self.textLabel.alpha
внутри fadeInThenOut()
и fadeText()