Ios 使用PPBadgeView的自定义徽章未显示在navigationitem-swift中
我正在创建一个应用程序,当有通知提醒用户时,我想显示徽章图标 我已经找到了名为Ios 使用PPBadgeView的自定义徽章未显示在navigationitem-swift中,ios,objective-c,swift,uinavigationcontroller,badge,Ios,Objective C,Swift,Uinavigationcontroller,Badge,我正在创建一个应用程序,当有通知提醒用户时,我想显示徽章图标 我已经找到了名为PPBadgeView的库,并按照以下说明使用了pod'PPBadgeViewSwift',然后安装pod 在编程中,我想用badgeview实现rightNavigationBar,但它并没有显示出来 我所做的: let rightBarButton = UIBarButtonItem(image: UIImage(named: "notification")?.withRenderingMode(UIImageRe
PPBadgeView
的库,并按照以下说明使用了pod'PPBadgeViewSwift'
,然后安装pod
在编程中,我想用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
当我运行应用程序时,我只看到我设置的图标。我不知道我的观点在哪里 如果您使用的是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)
}
PPBadgeViewSwift没有为UIBarButtonItem提供图像api。您可以这样尝试获取badgeView。让rightBarButton=UIBarButtonItem.init(barButtonSystemItem:.add,target:self,action:#selector(notificationHandle)),如果我想自定义UIBarButtonItem的图像,请检查下面的链接,这可能对swift很有用这很好!但是你能告诉我们为什么必须异步处理任务吗?在iOS 11+中,你无法在
viewDidLoad()
的主线程中访问uibarbuttoneim
视图,这就是为什么你必须异步处理任务的原因