如何在iOS Swift中将绿点徽章设置为特定的tabBarItem?

How to set green dot badge to a particular tabBarItem in iOS Swift?

提问人:Sunil Targe 提问时间:5/3/2023 更新时间:5/4/2023 访问量:188

问:

目前,我正在尝试以这种方式设置绿点,但最终结果始终是红色徽章。

        xxxx.tabBarItem.badgeColor = .clear
        xxxx.tabBarItem.badge value = "●"

        
        let attribute : [NSAttributedString.Key : Any] = [NSAttributedString.Key.foregroundColor : UIColor.green]

        xxxx.tabBarItem.setBadgeTextAttributes(attribute, for: .disabled)
        xxxx.tabBarItem.setBadgeTextAttributes(attribute, for: .selected)
        xxxx.tabBarItem.setBadgeTextAttributes(attribute, for: .highlighted)
        xxxx.tabBarItem.setBadgeTextAttributes(attribute, for: .normal)

我想要什么?

enter image description here

但代码结果是:enter image description here

iOS Swift UITabBarItem

评论

1赞 HangarRash 5/3/2023
如果设置而不是清除会怎样?badgeColor = .green
1赞 Rob C 5/3/2023
在代码中设置所有这些 tabBarItem 属性的什么位置?哪种方法?
1赞 Rob C 5/3/2023
badgeColor 的默认值为 systemRed。所以有些事情告诉我你没有在正确的位置配置你的tabBarItem。或者,也许您正在使用不同的值多次执行此操作。
0赞 Sunil Targe 5/3/2023
@HangarRash相同的结果(默认为红色)
0赞 Sunil Targe 5/5/2023
@RobC我正在设置它们func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)

答:

0赞 Supriyo Dey 5/3/2023 #1

它会起作用的。使用代替 .tabBar.itemstabBarItem.badgeValue

 self.tabBarController?.tabBar.items?[0].badgeColor = .clear

 self.tabBarController?.tabBar.items?[0].badgeValue = "●"

 let attribute : [NSAttributedString.Key : Any] = [NSAttributedString.Key.foregroundColor : UIColor.green]

 self.tabBarController?.tabBar.items?[0].setBadgeTextAttributes(attribute, for: .disabled)

 self.tabBarController?.tabBar.items?[0].setBadgeTextAttributes(attribute, for: .selected)

 self.tabBarController?.tabBar.items?[0].setBadgeTextAttributes(attribute, for: .highlighted)

 self.tabBarController?.tabBar.items?[0].setBadgeTextAttributes(attribute, for: .normal)

ScreenShot