我正在使用Swift 3
,我研究了各种方法来设置backgroundColor
的{{1}}颜色。最简单的方法是更改UITabBar
的{{1}}中的属性。当我尝试这样做时,didFinishLaunchingWithOptions
以标准颜色启动,这不是我想要的结果。
但是,当我转到下一个标签时,AppDelegate
颜色会变为我想要的颜色。
在此之后,我尝试UITabBar
我的UITabBar
,并尝试在subclass
和UITabBarController
中设置背景颜色。所有这三个尝试都表现出完全相同的行为 - 这是使用标准颜色启动的viewDidLoad
,并且仅当我选中下一个标签时才更改颜色。
这是我的代码:
viewDidLayoutSubViews
UITabBar
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)
-> Bool {
UITabBar.appearance().backgroundColor = UIColor.red
return true
}
我的问题如下:
1)我可以将此消除为约束问题吗?我没有修改或设置override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.backgroundColor = UIColor.red
}
2)我有一个启动屏幕,用户选择确认某些内容,然后override func viewDidLayoutSubviews() {
self.tabBar.backgroundColor = UIColor.red
}
UITabBar
。这可能是问题的一部分吗?
答案 0 :(得分:1)
更改为标签栏颜色的基本方法不是设置其backgroundColor
,而是设置其barTintColor
。 (对于更复杂的控制,请使用彩色backgroundImage
。)
答案 1 :(得分:0)
把它放在我的app委托给我一个标记为红色的标签栏。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let tabBarVC = UITabBarController()
tabBarVC.viewControllers = [FirstViewController(), SecondViewController()]
tabBarVC.tabBar.backgroundColor = UIColor.red
window?.rootViewController = tabBarVC
window?.makeKeyAndVisible()
return true
}