我如何改变导航栏的颜色在iOS 7?
基本上我想要实现类似Twitter导航栏的东西(更新的Twitter为iOS7)。我在视图控制器的顶部嵌入了一个导航条。所有我想要的是改变导航栏的颜色为浅蓝色连同顶部的工具栏。我似乎在我的故事板中找不到一个选项。
我如何改变导航栏的颜色在iOS 7?
基本上我想要实现类似Twitter导航栏的东西(更新的Twitter为iOS7)。我在视图控制器的顶部嵌入了一个导航条。所有我想要的是改变导航栏的颜色为浅蓝色连同顶部的工具栏。我似乎在我的故事板中找不到一个选项。
当前回答
这个问题和这些答案很有帮助。有了它们,我可以设置我想要的深蓝色导航栏颜色,白色标题和按钮文本。
但我还需要将时钟、载波、信号强度等更改为白色。黑色和深蓝色的对比不够明显。
我可能在之前的回答中忽略了这个解决方案,但我能够通过在我的顶级viewController的viewDidLoad中添加这一行来进行更改:
[self.navigationController.navigationBar setBarStyle:UIStatusBarStyleLightContent];
其他回答
在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]];
}
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
为了使Rajneesh071的代码完整,你可能还想设置导航栏的标题颜色(和字体,如果你想要的话),因为默认行为从iOS 6改变到7:
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7)
{
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.translucent = NO;
NSMutableDictionary *textAttributes = [[NSMutableDictionary alloc] initWithDictionary:mainNavController.navigationBar.titleTextAttributes];
[textAttributes setValue:[UIColor whiteColor] forKey:UITextAttributeTextColor];
self.navigationController.navigationBar.titleTextAttributes = textAttributes;
}
else
{
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
}
在ios7中,你必须使用-barTintColor属性:
navController.navigationBar.barTintColor = [UIColor barColor];