我的 iPhone 应用程序在视图底部有一个标签栏控制器 - 目前我有三个按钮。但是,我想添加更多,但为此我需要将三个按钮中的最后一个变成“更多...”按钮,否则其他按钮上的文本会相互碰撞。
我知道如果您在标签栏中有超过 5 个按钮,那么它会自动创建一个更多按钮 - 但是有没有办法通过编辑功能手动调用它?
谢谢。
我的 iPhone 应用程序在视图底部有一个标签栏控制器 - 目前我有三个按钮。但是,我想添加更多,但为此我需要将三个按钮中的最后一个变成“更多...”按钮,否则其他按钮上的文本会相互碰撞。
我知道如果您在标签栏中有超过 5 个按钮,那么它会自动创建一个更多按钮 - 但是有没有办法通过编辑功能手动调用它?
谢谢。
您不必手动创建“更多...”按钮。只需将您需要的所有视图控制器添加到选项卡栏控制器,它就会处理其余的。
即使只有三个选项卡,您也可以将最后一个栏按钮设置为“更多”按钮。该选项卡栏项目的初始化代码将是:
self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMore tag:0];
让你的名字更短,或者不要使用标签栏。您将有五个或六个视图控制器,但只希望在任何给定时间可以访问两个?如果您的三分之二的视图将在“更多”列表中,为什么不将它们全部显示在列表中呢?然后你可以回收底部的空间,并且没有视图需要额外的水龙头。
如果你真的想这样做,你应该为UITabBarController
. 我浏览了一遍,UIKit
甚至尝试了 swizzling -_viewControllersInTabBar
,但是在 中的几个地方都假设了五个按钮的限制UITabBarController
,所以你最好自己编写。
您可能已经注意到一些 iPad 应用程序,例如 YouTube,有超过五个标签栏项目:(来源:apple.com)
如果 UITabBarController 如此痴迷于不超过五个视图控制器,这怎么可能?UITabBarController
也许 Apple在 3.2 SDK 中添加了某种可以帮助您的私有方法。也许它被称为类似的东西-_setMaximumNumberOfItems:
,也许它设置了一个NSUInteger
名为_maxItems
. 如果 Apple 确实添加了这样的私有方法,您仍然需要等待 iPhone 兼容的 3.2 版本发布,即便如此,使用私有方法也很糟糕。
更改标签名称。没什么大不了的。
所以甚至无法制作 6 视图标签栏应用程序吗?
即使每个人的名字都超短
让我们说这样的话
红色 红色 红色 红色 红色
而不是黄色 黄色 黄色 黄色 黄色