如何在 iphone 中为导航栏添加自定义颜色?

Posted

技术标签:

【中文标题】如何在 iphone 中为导航栏添加自定义颜色?【英文标题】:How to add custom color to navigation bar in iphone? 【发布时间】:2011-07-31 10:44:57 【问题描述】:

如何将导航栏设置为自定义颜色(例如深绿色)?

我知道如何使用如下代码将导航栏更改为绿色和红色等原色:

UINavigationBar *bar = [self.navigationController navigationBar]; 
[bar setTintColor:[UIColor redColor]]; 

谢谢。

【问题讨论】:

【参考方案1】:

像这样使用 RGB 值:

UINavigationBar *bar = [self.navigationController navigationBar];
[bar setTintColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0]];

【讨论】:

谢谢这工作,但我能知道深绿色的 RGB 值是多少 我有颜色,但我现在想让我的酒吧有点不透明。怎么可能。谢谢 第二行代码应该是 [bar setTintColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0]]; ios7 以上setTintColor 不起作用。请改用setBarTintColor 【参考方案2】:
[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:107.0/255.0 green:145.0/255.0 blue:35.0/255.0 alpha:1.0]]; 

将此代码放在Appdelegate的didfinislaunching方法中。它将改变整个应用导航栏的颜色。

【讨论】:

抱歉,您不应该除以 255 而不是 256 吗? @PaperThick 感谢您注意到这一点。 它对我不起作用。会不会是加载我的视图会以某种方式覆盖它? @9000 可能在 viewDidLoad 或 viewWillAppear 中,或者 viewDidAppear 覆盖了这个。你可以在你的视图控制器中交叉检查。 我的错,我以为这是关于状态栏的。不同于导航栏。【参考方案3】:

以及更改导航栏背景的色调

[self.navBar setBarTintColor:[UIColor colorWithRed:0.701 green:0.926 blue:0.000 alpha:1.000]];

【讨论】:

【参考方案4】:
[bar setTintColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]]

如documentation 中所述,还有许多其他方法可以从不同种类的组件中获取颜色。

【讨论】:

【参考方案5】:

为了快速,改变导航栏背景的色调:

navigationController?.navigationBar.barTintColor = UIColor.red

【讨论】:

【参考方案6】:

这样使用,

UINavigationBar *bar = [self.navigationController navigationBar];
bar.barTintColor = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];

【讨论】:

以上是关于如何在 iphone 中为导航栏添加自定义颜色?的主要内容,如果未能解决你的问题,请参考以下文章

更新自定义导航栏透明图像自动布局 Iphone X?

如何在 iPhone 中基于导航的应用程序中添加标签栏

在 CSS/HTML 中为导航栏上的按钮添加图像

如何创建自定义标签栏...在标签栏中添加自定义图像(无需 xib 更改)

如何在xib中为不同的UIViewcontroller设置不同的导航栏颜色?

ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色