添加两个通知 willEnterForegroundNotification 和 didEnterBackgroundNotification。
这也值得注意。在某些情况下,您需要重置动画属性以使新动画保持不变。我可以通过动画转换来确认这一点。
只是打电话...
view.layer.removeAllAnimations()
self.someLabel.alpha = 1.0
//完整代码
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
NotificationCenter.default.addObserver(self, selector:#selector(didEnterForeground) , name: UIApplication.willEnterForegroundNotification, object: nil)
NotificationCenter.default.addObserver(self, selector:#selector(didEnterBackground) , name: UIApplication.didEnterBackgroundNotification, object: nil)
}
@objc func didEnterBackground() {
view.layer.removeAllAnimations()
self.someLabel.alpha = 1.0
}
@objc func didEnterForeground() {
DispatchQueue.main.async {
self.animation()
}
}
func animation() {
UIView.animate(withDuration: 1.0, delay: 0, options: [.autoreverse, .repeat], animations: {
self.someLabel.alpha = 0.3
}, completion: nil)
}