我如何改变导航栏的颜色在iOS 7?

基本上我想要实现类似Twitter导航栏的东西(更新的Twitter为iOS7)。我在视图控制器的顶部嵌入了一个导航条。所有我想要的是改变导航栏的颜色为浅蓝色连同顶部的工具栏。我似乎在我的故事板中找不到一个选项。


当前回答

颜色:

[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]];

的图像

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar_320X44.png"] forBarMetrics:UIBarMetricsDefault];

其他回答

self.navigationBar.barTintColor = [UIColor blueColor];
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.translucent = NO;

// *barTintColor* sets the background color
// *tintColor* sets the button's color

在ios7中,你必须使用-barTintColor属性:

navController.navigationBar.barTintColor = [UIColor barColor];

在viewcontroller或AppDelegate中只添加此代码

if([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
{
    //This is For iOS6
    [self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];
}
else
{
    //This is For iOS7
    [self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];
}

它实际上比我在这里看到的答案更简单:

1) Just make sure you select the navigation bar on the Navigation control. 
2) Select the color you want in the bar tint.
3) You have other options too, and/or individually on each view (just play with it).

我希望这能帮助到一些人。我不喜欢我看到的答案。我喜欢让我的代码尽可能的干净。并不是说用编程的方式做这件事是错误的,但确实有像我这样的人....这是给你们的。

快速改变导航条颜色:

self.navigationController?.navigationBar.barTintColor = UIColor.red

更改标题字体、大小、颜色:

self.title = "title"
self.navigationController?.navigationBar.titleTextAttributes = [
        NSAttributedString.Key.foregroundColor : UIColor.white,
        NSAttributedString.Key.font : UIFont(name: "Futura", size: 30)!
    ]