Iphone 在iOS7中测试的UINavigationBar设置颜色不工作?
我有一个应用程序,它有一个Iphone 在iOS7中测试的UINavigationBar设置颜色不工作?,iphone,objective-c,ios7,uinavigationcontroller,tintcolor,Iphone,Objective C,Ios7,Uinavigationcontroller,Tintcolor,我有一个应用程序,它有一个UINavigationBar,我将色调设置为黑色,如下所示: self.navigationController.navigationBar.tintColor = [UIColor blackColor];` 我已经在IOS 6上测试过了,它是黑色的。但是,当我在iOS 7中尝试相同的应用程序时,它显示为默认导航栏 正如标题所说,它不工作吗?您需要设置barTintColor属性 可以使用“着色”(barTintColor)字段为导航栏背景指定自定义着色颜色。默认
UINavigationBar
,我将色调设置为黑色,如下所示:
self.navigationController.navigationBar.tintColor = [UIColor blackColor];`
我已经在IOS 6上测试过了,它是黑色的。但是,当我在iOS 7中尝试相同的应用程序时,它显示为默认导航栏
正如标题所说,它不工作吗?您需要设置barTintColor属性 可以使用“着色”(barTintColor)字段为导航栏背景指定自定义着色颜色。默认背景色调为白色
从iOS7文档中:以下代码适用于我:
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
我在iOS7中使用了以下代码来更改导航栏的色调,我在应用程序中添加了这个委托“ApplicationIDFinishLaunch”方法,它的工作对我来说很好:
/* 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]];
}
//或
有同样的问题,但通过故事板文件解决了它 尝试以下方法
费尔南多和桑贾纳的答案很关键,但我只想补充一点,让它更清楚、更明显 导航栏有两个属性
- 色彩
- 巴丁特色
tintColor
更改导航栏上按钮的颜色。
要更改背景色,需要设置属性bartincolor
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];
此代码段将为您提供一个带有绿色按钮的白色导航栏。这里也有同样的问题。其他一切正常//对于ios6[Helper navController].navigationBar.tintColor=[Helper getThemeColorWithTransparent:NO]//对于ios7,如果([[Helper navController].navigationBar respondsToSelector:@selector(SetPartInColor:)]){[[Helper navController].navigationBar performSelector:@selector(SetPartInColor:)with Object:[Helper getThemeColorWithTransparent:NO]];}则不工作。我尝试了上述方法,但仍然不工作。这很奇怪。即使在iOS7上,如果基本sdk为6,也可以。beta 2更新修复了此问题。如果([self.navigationController.navigationBar respondsToSelector:@selector(SetPartIntColor:)]){self.navigationController.navigationBar.BartinColor=[self backgoundColorCurrentCompany];}@veereef:试试这个……self.navigationController.navigationBar.barTintColor=[UIColor redColor];但问题是,如果你的基本sdk是6.0,颜色应该是正确的。奇怪这在iOS7中对我不起作用,但问题中的原始代码确实起作用了……这行代码对我来说很神奇。在iOS7.1中,我所需要的一切,就是导航的颜色似乎都坏了。[[UINavigationBar外观]设置部分颜色:UIColorFromRGB(0x4B678B)];tintColor可以应用于导航栏上的按钮。包含透明像素图像的UIImageView可以通过其superview的“着色”属性“着色”。因此,如果我有一个tintColor=[UIColor blueColor]的表视图单元格,当添加到单元格的内容视图时,我的图像将显示为蓝色。
self.navigationController.navigationBar.tintColor = [UIColor redColor];
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
}
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];