从本地通知打开应用后动画标签 [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);
}