【问题标题】:UINavigationBar with solid color - ios 7UINavigationBar 纯色 - ios 7
【发布时间】:2014-07-19 17:28:40
【问题描述】:

我正在使用UINavigationController 及其默认UINavigationBar,并且我正在尝试关闭半透明效果,这样我就可以在其上使用纯色。显然,它不适用于代码,但只需单击一下情节提要即可(奇怪?!!)

我的代码:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:APP_DELEGATE.map];
[navController setToolbarHidden:YES];
[navController.navigationBar setTranslucent:NO];
[navController.navigationBar setBarTintColor:[UIColor turquoiseColor]];
//    [[UINavigationBar appearance] setBarTintColor:[UIColor turquoiseColor]]; | also doesn't work

为什么它不起作用?我该如何解决? 谢谢。

【问题讨论】:

  • @PhamHona :您应该接受正确的答案以保持良好的工作。

标签: ios objective-c uinavigationcontroller uinavigationbar uistoryboard


【解决方案1】:

这是正确的做法。用户appearance代理方法。

[[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
[self.navigationController.navigationBar setTranslucent:NO];

就是这样,你就完成了。使用任何你想要的颜色。上面的代码使 NavigationBar 不透明(即纯色)。

【讨论】:

    【解决方案2】:

    对于你们所有的斯威夫特人来说:

    UINavigationBar.appearance().barStyle = UIBarStyle.Default
    UINavigationBar.appearance().barTintColor = UIColor.redColor()
    self.navigationController?.navigationBar.translucent = false
    

    以上内容应该适用于 Swift 1.2 和 Swift 2。

    【讨论】:

    • 我更喜欢 Swifters :P
    【解决方案3】:

    使用这种方式作为导航栏的纯色我已经遇到这个问题很多时间了

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:APP_DELEGATE.map];
    [navController setToolbarHidden:YES]; 
    navController.navigationBar.barTintColor =[UIColor turquoiseColor];
    [navController.navigationBar setTranslucent:NO];
    

    【讨论】:

      【解决方案4】:

      我最终做的是创建一个 UINavigationController 子类并覆盖 initWithRootViewController: - 并在那里做你正在做的事情(将半透明设置为 NO 并应用条形颜色,除了现在我们当然是在 @987654322 上操作@)。

      【讨论】:

      • 我试过了,还是不行。此外,情节提要方式也不起作用(它在测试项目中起作用,但在我的主项目中不起作用,即使我完全按照每个步骤操作)。我认为这只需 1 或 2 行代码就可以完成,但人们也在为此苦苦挣扎,太难过了。
      • 天哪! f*ing sh,它有效,我的代码有效,你的代码有效。只是颜色名称错误。我认为turquoiseColorgreenseaColor 更暗,UINavigationBar 使它看起来褪色。 2小时什么都没浪费。该死 !对不起,伙计。
      【解决方案5】:
      UINavigationBar.appearance.barTintColor = [UIColor redColor];
      UINavigationBar.appearance.tintColor = [UIColor whiteColor];
      UINavigationBar.appearance.translucent = NO;
      

      这将提供纯色背景颜色红色和文本颜色白色,属性为非半透明。

      【讨论】:

        猜你喜欢
        • 2012-01-06
        • 2015-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-19
        • 1970-01-01
        • 1970-01-01
        • 2013-09-18
        相关资源
        最近更新 更多