我有一个有UINavigationBar
的应用,我将色调颜色设置为黑色,如下所示:
self.navigationController.navigationBar.tintColor = [UIColor blackColor];`
我已经在IOS 6中测试了它并且它是黑色的。但是,当我在iOS 7中尝试使用相同的应用程序时,它显示为默认导航栏。
正如标题所说,它不起作用吗?
答案 0 :(得分:21)
您需要设置barTintColor属性。
您可以使用Tint(barTintColor)字段为导航栏背景指定自定义色调颜色。默认背景色调颜色为白色。
答案 1 :(得分:16)
Fernando和sanjana的答案有关键,但我只是添加一些内容以使其更清晰,更明显。
导航栏有两个属性
如果您不考虑iOS 7条款,这有点误导。
tintColor
更改导航栏上按钮的颜色。
要更改背景颜色,您需要设置属性barTintColor
。
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];
此代码段将为您提供带绿色按钮的白色导航栏。
答案 2 :(得分:9)
我使用以下代码来改变iOS7中导航栏的色调,我在app delegate“applicationDidFinishLaunch”方法中添加了这个,并且它对我来说很好用:
/* ios 7 Change */
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x4B678B)];
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
shadow.shadowOffset = CGSizeMake(0, 1);
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
shadow, NSShadowAttributeName,
[UIFont fontWithName:@"Helvetica Neue" size:21.0], NSFontAttributeName, nil]];
// self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
//[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
}
答案 3 :(得分:4)
以下代码对我有用:
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
答案 4 :(得分:4)
有同样的问题,但通过故事板文件解决了。
请尝试以下操作。
在导航控制器场景中选择导航栏项
打开XCode右侧的Utilities选项卡
答案 5 :(得分:3)
[UINavigationBar appearance].tintColor = [UIColor redColor];
if ([[UINavigationBar appearance] respondsToSelector:@selector(setBarTintColor:)]) {
[UINavigationBar appearance].barTintColor = [UIColor redColor];
}
// OR
self.navigationController.navigationBar.tintColor = [UIColor redColor];
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
}