我正在创建一个应用,我想在出现提醒用户的通知时显示徽章图标。
我发现了名为PPBadgeView
的库,并且遵循了以下说明,我正在使用pod 'PPBadgeViewSwift'
然后是pod install
在编程中,我想用badgeview实现rightNavigationBar,但它没有显示给我。
我做了什么:
let rightBarButton = UIBarButtonItem(image: UIImage(named: "notification")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal), style: .plain, target: self, action: #selector(notificationHandle))
rightBarButton.pp.addBadge(text: "99+")
rightBarButton.pp.moveBadge(x: -5, y: 0)
rightBarButton.pp.setBadge(height: 12)
rightBarButton.pp.setBadge(flexMode: PPBadgeViewFlexMode.tail)
self.navigationItem.rightBarButtonItem = rightBarButton
当我运行该应用程序时,我只会看到仅设置的图标。我不知道我的badgeView在哪里。
答案 0 :(得分:1)
如果您使用的是iOS 11+,则必须异步执行任务
let rightBarButton = UIBarButtonItem(image: UIImage(named: "notification")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal), style: .plain, target: self, action: #selector(notificationHandle))
self.navigationItem.rightBarButtonItem = rightBarButton
if (UIDevice.current.systemVersion as NSString).doubleValue >= 11.0 {
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.01, execute: {
rightBarButton.pp.addBadge(text: "99+")
rightBarButton.pp.moveBadge(x: -5, y: 0)
rightBarButton.pp.setBadge(height: 12)
rightBarButton.pp.setBadge(flexMode: PPBadgeViewFlexMode.tail)
})
} else {
rightBarButton.pp.addBadge(text: "99+")
rightBarButton.pp.moveBadge(x: -5, y: 0)
rightBarButton.pp.setBadge(height: 12)
rightBarButton.pp.setBadge(flexMode: PPBadgeViewFlexMode.tail)
}