如何改变UITabBarItem的宽度?

时间:2011-07-31 08:37:20

标签: objective-c xcode width uitabbaritem

如何更改UITabBarItem的宽度?

我有一个标题的项目,比默认项目宽度宽。我该如何解决?

5 个答案:

答案 0 :(得分:19)

iOS7及更高版本的解决方案:

为UITabBar引入了一个新属性: itemWidth

  

将itemWidth设置为正值,以用作制表符的宽度   将它们定位为居中组时的条形项(相对于   填充标签栏)。默认值为0或小于0的值   解释为系统定义的宽度。

@property(nonatomic) CGFloat itemWidth NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;

所以你可以在AppDelegate中执行此操作:

[[UITabBar appearance] setItemWidth:WIDTH];

如果你想填满整个UITabBar:

[[UITabBar appearance] setItemWidth:self.window.frame.size.width/NUMBER_OF_ITEMS];

How to fill the UITabBar

答案 1 :(得分:1)

我刚刚搜索了文档,没有看到调整UITabBarItem宽度的方法。

一种可能的解决方案是在标签栏控制器中放置一个视图来加载自定义的UITabBarItem,即适当的宽度。

答案 2 :(得分:1)

您可以通过继承UITabBar并覆盖其layoutSubviews方法来更改选项卡栏项的间距(和宽度)。您将在self.subViews数组中找到所有标签栏按钮。他们的类是非公共UITabBarButton,但它们继承自UIControl,因此您可以识别所有标签栏按钮,检查它们是否是UIControl类。然后您只需要更改标签栏按钮的框架。

答案 3 :(得分:0)

如果将UITabBarController子类化,则可以找到更简便的解决方案 这将平均自动填充标签栏项目

self.tabBar.itemPositioning = .fill

答案 4 :(得分:0)

快速5

UITabBar().itemWidth = self.window!.frame.size.width/5