我一直在尝试改变标签栏的背景,也读过很多ObjC的帖子,很多都很旧了,但是我没有找到任何关于Swift的帖子,我正在使用Swift。
我终于找到了如何从代码中做到这一点,所以标签栏的颜色可以随着每个主题颜色的变化而变化。以下是我使用的参考:
override func viewWillAppear(animated: Bool) {
// set tab bar background color, including the More tab
self.tabBarController?.tabBar.backgroundColor = UIColor.blueColor()
}
我把这段代码放在应用程序启动时出现的第一个选项卡的视图控制器中,这样它就“首先”运行了。据我所知,它工作得很好,即使我有8个选项卡并使用了更多...选项卡。
而且我将相同的代码绑定到各个选项卡中的按钮,这样我就可以在代码中的任何地方更改选项卡栏的颜色。
但我承认,作为一个新手,我不确定这是改变标签栏颜色的最佳位置。如果这是错误的地方,请纠正我。
我在这里发布这段代码,因为它可以节省我几个小时,我希望它可以节省别人一些(迅速)的时间。
3条答案
按热度按时间taor4pac1#
这是改变
UITabBar
颜色的一个很好的方法。如果你不想在嵌入UITabBarController
的每个viewController中设置颜色,你也可以创建UITabBarController
的一个子类,并在那里设置它。这样无论哪个页面首先出现,颜色都会被设置。要创建
UITabBarController
的子类,只需转到文件〉新建〉文件〉可可touch类...然后像这张照片一样设置文件现在,在情节提要中,在tabBarController上设置自定义类
最后,在文件中创建了
MyTabBarController
(或其他名称):mutmk8jj2#
Xcode 9(X代码9)
情节提要
可以直接在视图控制器中设置背景色(当前在TabBarViewController中),为此您需要定义Key Path。不要忘记删除嵌套**视图上的背景色,否则它将与超级视图的背景色重叠。
mrfwxfqh3#
你可以这样改变
颜色控制器。