Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在iOS7中测试的UINavigationBar设置颜色不工作?_Iphone_Objective C_Ios7_Uinavigationcontroller_Tintcolor - Fatal编程技术网

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]];

    }
//或


有同样的问题,但通过故事板文件解决了它

尝试以下方法

  • 打开.storyboard文件
  • 使用导航控制器选择场景
  • 在导航控制器场景中选择导航栏项

  • 打开XCode右侧的实用程序选项卡

  • 打开属性检查器
  • 在“导航栏”组中,将显示“条色”下拉列表。您可以为色调选择任何颜色。

  • 费尔南多和桑贾纳的答案很关键,但我只想补充一点,让它更清楚、更明显

    导航栏有两个属性

    • 色彩
    • 巴丁特色
    如果你不用iOS 7的术语来思考,这有点误导

    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];