UINavigationBar backgroundColor 不适用于 UITabBar
Posted
技术标签:
【中文标题】UINavigationBar backgroundColor 不适用于 UITabBar【英文标题】:UINavigationBar backgroundColor not working with UITabBar 【发布时间】:2016-10-13 10:53:03 【问题描述】:我正在使用 UINavigationController 并在 didFinishLaunching... 中设置背景颜色:
self.navController.backgroundColor = UIColor.green
它在第一个视图控制器中运行良好,如第一张图片所示。在第二个视图控制器中(只是使用按钮中的 segue 推动)我有一个 UITabBar(没有 UITabBarController)并且背景颜色不起作用。如果我删除 UITabBar 它可以工作。
Correct navigation bar background color
Wrong navigation bar background color
该项目不包含任何其他代码。如果我使用 barTintColor 而不是 backgroundColor,它会起作用,但我认为这看起来不太好。
有人知道我该如何解决这个问题吗?
【问题讨论】:
请用您用于更改 bartintcolor 的代码更新您的问题 【参考方案1】:您必须为导航栏的背景颜色设置属性 TintColor
在 Objective-c 中
[[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
迅速
navigationController.navigationBar.barTintColor = UIColor.greenColor()
【讨论】:
【参考方案2】:self.navigationController?.navigationBar.barTintColor = UIColor.GreenColor()
或
UINavigationBar.appearance().barTintColor = .blackColor()
或者
[navigationController.navigationBar setTitleTextAttributes:@NSForegroundColorAttributeName : [UIColor whiteColor]];
【讨论】:
【参考方案3】:你可以像这样使用 barTintColor 属性:
self.navigationController?.navigationBar.barTintColor = UIColor.green
【讨论】:
barTintColor 实际上并没有打印正确的颜色,只是一种色调。如何为标签栏设置精确的所需颜色?任何的想法? (我不想使用图像作为背景,因为我想动态设置它) 好吧,你实际上需要设置barTintColor
和isTranslucent = false
...以上是关于UINavigationBar backgroundColor 不适用于 UITabBar的主要内容,如果未能解决你的问题,请参考以下文章
由于奇怪的 UINavigationBar 视图层次结构,自定义 UINavigationBar 不起作用
UITableView 滚动 UINavigationBar