如何在标签栏中均匀地间隔标签栏项目
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】:嗯,这是一个通用的解决方案,没有任何硬编码值。
在UITabBarController
的viewDidLoad()
中设置
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
【讨论】:
以上是关于如何在标签栏中均匀地间隔标签栏项目的主要内容,如果未能解决你的问题,请参考以下文章