如何在标签栏中均匀地间隔标签栏项目

Posted

技术标签:

【中文标题】如何在标签栏中均匀地间隔标签栏项目【英文标题】:How to spacing tab bar items equally in tab bar 【发布时间】:2017-02-11 08:18:27 【问题描述】:

我有 3 个标签栏项目,我希望它们在标签栏中显示如下:

|                  |

|    1    2    3   |

|                  |

我在 InterfaceBuilder 中看到了这个属性:

所有的情况我都试过了,还是不行,显示如下:

|                  |

|      1  2  3     |

|                  |

【问题讨论】:

在您的条形项目之间使用灵活空间,例如flexiblespace-item1-flexiblespace-item2-flexiblespace-item3-flexiblespace 在另一篇文章中回答了这个问题。在这里查看解决方案。 enter link description here 【参考方案1】:

嗯,这是一个通用的解决方案,没有任何硬编码值。

UITabBarControllerviewDidLoad() 中设置

tabBar.itemPositioning = .fill

【讨论】:

为我工作。您可以创建一个新类或在 Interface Builder 中选择此选项【参考方案2】:

这是最简单的解决方案:

如果你有一个子 TabBarController,在viewDidLayoutSubviews 中添加这段代码,它对我有用。

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()

    self.tabBar.itemSpacing = UIScreen.main.bounds.width / 6

【讨论】:

【参考方案3】:

这是 Objective-C 的代码。

-(void)viewDidLoad

    [super viewDidLoad];

    [self.tabBar setItemPositioning:UITabBarItemPositioningFill];

您还可以在 Tab Bar 的 Storyboard 中设置值

【讨论】:

【参考方案4】:

接受的答案需要设置 tabBar.itemPositioning 才能正常工作。如果上述答案不起作用,请尝试将其设置为 .centered。此后,您应该能够以编程方式设置项目间距。

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()

    self.tabBar.itemPositioning = .centered
    self.tabBar.itemSpacing = UIScreen.main.bounds.width / 6

【讨论】:

以上是关于如何在标签栏中均匀地间隔标签栏项目的主要内容,如果未能解决你的问题,请参考以下文章

如何更改标签栏中未选中项目的颜色?

如何在 iOS 的标签栏中禁用蓝色突出显示?

如何创建自定义标签栏...在标签栏中添加自定义图像(无需 xib 更改)

如何识别标签栏项目?

在标签栏中滚动功能很奇怪

在弹出窗口的标签栏中取消导航控制器中的 UITableView 搜索后,UINavigationBar 无响应