从本地通知打开应用后动画标签 [Swift 3.0 - Xcode 8]
Animating a label after opening app from a local notification [Swift 3.0 - Xcode 8]
我试图通过单击本地通知打开我的应用程序时为标签设置动画。如果我正常打开应用程序,动画有效,从本地通知打开应用程序时它不起作用。我有一个条件(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)
}
}
记得在视图控制器被取消初始化时删除观察者。
deinit {
NotificationCenter.default.removeObserver(self, name: .UIApplicationWillEnterForeground, object: nil);
}
我试图通过单击本地通知打开我的应用程序时为标签设置动画。如果我正常打开应用程序,动画有效,从本地通知打开应用程序时它不起作用。我有一个条件(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)
}
}
记得在视图控制器被取消初始化时删除观察者。
deinit {
NotificationCenter.default.removeObserver(self, name: .UIApplicationWillEnterForeground, object: nil);
}