我试图通过单击本地通知打开我的应用程序时为标签设置动画。如果我正常打开应用程序,动画有效,从本地通知打开应用程序时它不起作用。我有一个条件(Astat),当它变为真时,发送本地通知。但我似乎无法让动画工作。这是我的尝试:
override func viewDidAppear(_ animated: Bool) {
if Astat == true{
animateText()}
print("viewDidAppear")
}
有人可以帮忙吗?
最佳答案
问题是 viewDidApear
在您进入前台时不会被调用。您需要添加一个通知观察器来使动画工作。
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(animateText), name: .UIApplicationWillEnterForeground, object: nil)
}
func animateText() {
// An example of animating your label
UIView.animate(withDuration: 2.0) {
self.label.transform = CGAffineTransform(translationX: 50, y: 100)
}
}
记得在 View Controller 被取消初始化时移除观察者。
deinit {
NotificationCenter.default.removeObserver(self, name: .UIApplicationWillEnterForeground, object: nil);
}
关于ios - 从本地通知打开应用程序后动画标签 [Swift 3.0 - Xcode 8],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45340634/