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

How to spacing tab bar items equally in tab bar

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

|                  |

|    1    2    3   |

|                  |

我在 InterfaceBuilder 中看到这个 属性:

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

|                  |

|      1  2  3     |

|                  |

这是最简单的解决方案:

如果您有子 TabBarController,请在 viewDidLayoutSubviews 中添加此代码,它适用于我。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

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

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

在您的 UITabBarControllerviewDidLoad() 中,设置

tabBar.itemPositioning = .fill

这是 Objective-C 的代码。

-(void)viewDidLoad
{
    [super viewDidLoad];

    [self.tabBar setItemPositioning:UITabBarItemPositioningFill];
}

你也可以在Tab Bar的Storyboard中设置值

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

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

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