Swift:在移除之前将视图(用于应用内通知)动画显示在屏幕上几秒钟

Swift: Animating a view (for in-app notifications) onto the screen for a few seconds before removing

我正在尝试做这里完美描述的事情:https://github.com/bryx-inc/BRYXBanner

我想创建一个横幅,它会在屏幕上弹出几秒钟,然后被删除(或被点击时删除)。上面的项目在 iOS 9 之前一直很好。在那之后和 iOS 10,横幅不再像预期的那样工作,要么显示三分之一秒没有动画,要么不显示展示。

如何添加一个在屏幕上显示动画的视图,然后返回以在应用程序内向用户提供快速 "No Internet" 通知。我想避免使用通知中心。

我遇到了类似的问题并为此创建了自己的库:MDNotificationView

GitHub 上的示例应用实现了您的想法。这是一个实现它的小片段:

let view = MDNotificationCompactLayoutView()
view.textLabel.text = "No internet connection."

let notificationView = MDNotificationView(view: view)
notificationView.delegate = self
notificationView.show()

// MARK: - Notification View Delegate

func notificationDidShow(notificationView: MDNotificationView) {
    // Hide the notification view automatically after 5 seconds.
    DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
        notificationView.hide()
    }
}