Пользовательский значок с использованием PPBadgeView не отображается в навигационном элементе - swift - PullRequest
0 голосов
/ 19 сентября 2018

Я создаю приложение, которое я хочу показать значок, когда есть уведомление, чтобы предупредить пользователя.

Я обнаружил библиотеку с именем PPBadgeView, и я следовал следующей инструкции, которую я использую pod 'PPBadgeViewSwift', а затем pod install

В программировании я хочу реализовать rightNavigationBar с помощью badgeviewно это не показывает мне.

Что я сделал:

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.

1 Ответ

0 голосов
/ 19 сентября 2018

Если вы используете 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)
}
...