我有一个带有四个选项卡的UITabBarController的应用程序。我一直在尝试在不同的选项卡上定制不同的徽章(背景(颜色,但未能实现每个选项卡的独特定制。
我正在努力实现的目标:
- 打开应用程序,默认选择第二个选项卡
- 第三个选项卡收到通知,在第三个标签上呈现徽章,并将徽章BackgroundColor显示为蓝色
- 一直以来,其他标签上的任何徽章都应该保持红色
选项卡栏似乎只会查看当前所选选项卡中tabBarItem的标准外观,例如,如果我将选项卡3的徽章BackgroundColor设置为蓝色,则当我选择该选项卡时,整个选项卡栏上的徽章将变为蓝色。然后,当我切换到任何其他选项卡时,所有选项卡栏项目上的徽章都将采用新选择选项卡上的徽章BackbackgroundColor。
我还试着使用tabBarItem.badgeColor,但这似乎根本没有效果。
选项卡项的标准外观是否总是影响所有其他选项卡?有没有一种方法可以在应用程序中唯一地自定义每个tabItem的badgeBackgroundColor?
不能回答后两个问题,只能回答第一个问题:
要初始选择第二个选项卡栏,请将选项卡栏连接到自定义UITabBarController,并使用选项卡控制器的selectedIndex
设置初始选项卡,如下所示:
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
//The second tab is the first to show
self.selectedIndex = 1
}
u可以这样尝试:
- 第一个问题
selectedIndex = 2
- 第二个问题
tabBar.selectedItem?.badgeColor = .red