ios - 从本地通知打开应用程序后动画标签 [Swift 3.0 - Xcode 8]

标签 ios swift view notifications viewdidappear

我试图通过单击本地通知打开我的应用程序时为标签设置动画。如果我正常打开应用程序,动画有效,从本地通知打开应用程序时它不起作用。我有一个条件(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/

相关文章:

php - 将录制的音频从 iOS 应用程序保存到 mySQL 数据库

ios - 使用 AutoLayout 在自定义 UITableViewCell 中使用 Aspect Fill 的 UIImageView

android - 适用于 Android 和 IOS 的乐谱 API?

swift - PromiseKit 3.0 链接

ios - 如何执行激活编程约束

iOS 将 ScrollView 添加到现有 View

iphone - 为什么要依次给 UIView 的 transform 属性赋值?

ios - 如何从 NSString 中删除十六进制字符

swift - Swift 可选类型中 "an Optional of an Optional"的用途是什么?

android - 充气 View 的差异