如何更改选项卡栏控制器中每个选项卡的外观?
问题描述:
override func viewDidLoad() {
super.viewDidLoad()
tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
}
我把它放在我的选项卡的视图控制器之一。但是,这只能设置具体的视图。我复制并粘贴到所有其他控制器,但只有当我点击它们时才会设置。 (如果我不点击它们,viewDidLoad
不会运行。)如何更改选项卡栏控制器中每个选项卡的外观?
我希望所有选项卡在显示所有选项卡时立即显示此图像。
答
一种选择是循环浏览标签栏的所有控制器。在你的UITabBarController
初始化(和它的viewControllers
被填充)或你的第一个视图控制器的viewDidLoad
(它只需要运行一次)之后放置这个代码。
// Loop through ALL the controllers in the TabBarController and set their tab bar item imageInsets.
for (index, controller) in enumerate(tabBarController.viewControllers) {
controller.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
}