Приложение имеет анимацию, которая останавливается, когда приложение переходит в фоновый или передний план, и перезапускается, когда приложение снова становится активным.
Как я могу сделать это без использования наблюдателей?Я читал в других темах, что этот способ не является хорошей практикой, и приложение может аварийно завершить работу.
override func viewDidLoad() {
super.viewDidLoad()
myView.startAnimations()
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)
notificationCenter.addObserver(self, selector: #selector(appMovedToForeground), name: UIApplication.willEnterForegroundNotification, object: nil)
notificationCenter.addObserver(self, selector: #selector(appBecomeActive), name: UIApplication.didBecomeActiveNotification, object: nil)
}
override func viewWillAppear(_ animated: Bool) {
myView.startAnimations()
}
override func viewDidDisappear(_ animated: Bool) {
myView.stopAnimations()
}
@objc func appMovedToBackground() {
myView.stopAnimations()
}
@objc func appMovedToForeground() {
myView.stopAnimations()
}
@objc func appBecomeActive() {
myView.startAnimations()
}
(отредактировано с исправлением для appMovedToForeground)