Я только что создал приложение iOS с простой анимацией. Но я борюсь с UIViewPropertyAnimator. Я хочу анимировать кнопку, и она работает хорошо, пока я не покину приложение (нажав кнопку «Домой») и вернусь к нему. Анимация остановилась и не запустится снова. Я попытался остановить анимацию и запустить ее снова после того, как ViewController сделалBecomeActive, но это тоже не работает.
Я запускаю анимацию в методе viewDidAppear следующим образом:
var animator: UIViewPropertyAnimator!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive), name: UIApplication.didBecomeActiveNotification,object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeInActive), name: UIApplication.willResignActiveNotification,object: nil)
//Start Animation
animator = UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 1, delay: 0, options: [.autoreverse, .repeat], animations: {
UIView.setAnimationRepeatAutoreverses(true)
UIView.setAnimationRepeatCount(1000)
self.scanButton.transform = CGAffineTransform(scaleX: 0.95, y: 0.95)
}, completion: nil)
animator.startAnimation()
}
А вот код, где я останавливаю и перезапускаю анимацию:
@objc func applicationDidBecomeActive() {
print("Active")
animator.startAnimation()
}
@objc func applicationDidBecomeInActive() {
print("InActive")
animator.stopAnimation(true)
animator.finishAnimation(at: .current)
}
Надеюсь, вы ребята знают как это решить. Заранее спасибо.