如何在 iPhone 上为导航栏添加自定义颜色?

15

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

我知道如何使用以下代码将导航栏更改为主要颜色,如绿色和红色:

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

谢谢。

6个回答

21

使用如下的RGB数值:

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

1
谢谢,这个可以用,但是我能知道深绿色的RGB值是多少吗? - Rani
我已经有了颜色,但现在我想让我的条形图有点透明。这是否可能?谢谢。 - Rani
代码的第二行应该写成 [bar setTintColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0]]; - Nick T
2
从iOS7开始,setTintColor 不再起作用。请改用 setBarTintColor - Ganpat

14
[[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
@PaperThick 感谢您注意到这一点。 - Desert Rose
它对我不起作用。可能是加载我的视图会以某种方式覆盖它吗? - sudo
@9000 可能在 viewDidLoad 或 viewWillAppear 或 viewDidAppear 中被覆盖了。您可以在您的视图控制器中进行交叉检查。 - Desert Rose
我的错误,我以为这是关于状态栏的。它与导航栏不同。 - sudo

4

要更改导航栏背景的色调:

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

3
[bar setTintColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]]

文档中介绍了许多其他获取颜色的方式,这些方式可以使用不同类型的组件来实现。


3

对于Swift语言,要更改导航栏背景的色调:

navigationController?.navigationBar.barTintColor = UIColor.red

-1

使用方法如下:

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

似乎基本上与被接受的答案相同。 - Trenton McKinney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接