如何为我的第 6 个标签栏项目设置徽章值?

Posted

技术标签:

【中文标题】如何为我的第 6 个标签栏项目设置徽章值?【英文标题】:How to set badge value for my 6th tab bar item? 【发布时间】:2012-09-12 10:42:16 【问题描述】:

我想在我的第 6 个 tabbaritem 上设置徽章值??怎么做。 我可以使用 self.tabbaritem.badgevalue=@""

在第 4 个 tabbaritem 上设置徽章值

但是使用相同的原理,我无法将徽章设置为我的第 6 个 tabbaritem。请帮帮我???

以下代码包含我的徽章值。

            CustomBadge *customBadge1=[[CustomBadge alloc]init];

            customBadge1 = [CustomBadge customBadgeWithString:[self getBadges]
                                              withStringColor:[UIColor whiteColor] withInsetColor:[UIColor redColor] withBadgeFrame:YES withBadgeFrameColor:[UIColor whiteColor] 
                                                    withScale:1.0 withShining:YES];

            [customBadge1 setFrame:CGRectMake(self.view.frame.size.width/2-customBadge1.frame.size.width/4,20, customBadge1.frame.size.width, customBadge1.frame.size.height)];

            [self.view addSubview:customBadge1];   

【问题讨论】:

这是 iPhone 还是 iPad 应用程序 【参考方案1】:

首先,标签栏中不应该有第 6 个标签,因为这违反了 Apple 设定的设计规则。

因为这会导致“更多”按钮显示为第 5 个按钮。单击此按钮将重定向到表格视图,该视图将显示您无法将徽章设置到的第 5 个和第 6 个选项卡视图。

【讨论】:

其实我对更多taabbartitem有我的看法。 添加到 TabBar 的更多按钮是 UITabBarController 的功能,而不是标签栏本身。 UITabBarController 有一个标签栏,并添加了更多行为,例如更多按钮、编辑以及您在大多数基于 Tab 的应用程序中看到的所有花哨的东西。【参考方案2】:

有趣的问题——如果您的标签栏支持编辑,您可以在运行时重新排序标签,标签在前 4 个位置和“更多”控制器之间移动。 (第 5 位是为“更多...”保留的)。

只有前 4 个项目有一个实际的 UITabBarItem,这是徽章所在的位置。要支持将徽章与第 6 件事关联,您可以覆盖选项卡编辑功能,调用它们的 [super] 方法,然后检查重新排序的项目是否应该有徽章。如果是,请设置它们的值。

当然,这需要您跟踪“更多”项目的徽章值,以便在显示时设置它们。

您还可以覆盖/扩展“更多”控制器行为以在表格行中显示徽章值,可能在附件指示器旁边。

请参阅此答案以获取指针: Customizing the More menu on a Tab bar

【讨论】:

以上是关于如何为我的第 6 个标签栏项目设置徽章值?的主要内容,如果未能解决你的问题,请参考以下文章

如何为标签栏的项目设置动画

更新标签栏项目徽章值的延迟

在通知回调中设置时,标签不会出现在标签栏项目上

为啥标签栏项目的徽章没有改变

在 Swift 中更改标签栏徽章大小

如何调整标签栏徽章位置?