【问题标题】:Navigation bar same bg color as view导航栏的背景颜色与视图相同
【发布时间】:2015-04-18 01:45:30
【问题描述】:

我们的设计师希望导航栏与视图的背景颜色相同。但是,他们也希望导航栏保持半透明。

显然,如果我将其设置为非半透明,它会很有效:

[[UINavigationBar appearance] setTranslucent:NO];

但这不是我们想要的效果。有没有一种方法可以使它们具有相同的颜色,而无需花费数小时调整导航栏的背景颜色?

这是我们将导航和视图设置为相同颜色时的样子:

【问题讨论】:

  • 我在这里遗漏了什么吗?你能不把颜色设置为[UIColor clearColor]吗??
  • 为什么?它需要是透明的和相同的颜色....有什么区别?
  • 由于半透明的原因,它似乎仍然以较深的颜色结束。
  • 不,我们不想要一个透明的导航栏。

标签: ios objective-c xcode ios7 uiview


【解决方案1】:

我认为以下代码可以帮助您实现这一目标。

[[UINavigationBar appearance]setBarTintColor:[UIColor colorWithRed:0.04 green:0.38 blue:0.95 alpha:1.0]];

     [[UINavigationBar appearance]setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
    [[UIBarButtonItem appearance]setTintColor:[UIColor colorWithRed:1.00 green:1.00 blue:1.00 alpha:1.0]];

    [[UINavigationBar appearance]setTintColor:[UIColor whiteColor]];

您还可以使用来自 RGB 代码或十六进制的颜色。

【讨论】:

    【解决方案2】:

    使用此代码希望它有效

    [self.navigationController.navigationBar setBarTintColor:self.view.backgroundColor];
    [self.navigationController.navigationBar setTranslucent:NO];
    

    【讨论】:

      【解决方案3】:

      只需为背景和阴影设置空白图像:

      [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
      self.navigationController.navigationBar.shadowImage = [UIImage new];
      self.navigationController.navigationBar.translucent = YES;
      

      【讨论】:

        【解决方案4】:
        Try this code    
        
         [self.navigationController.navigationBar setBarTintColor:[UIColor backgroundcolor]];
            [self.navigationController.navigationBar setTranslucent:NO];
        

        【讨论】:

        • 问题中的第 2 句明确指出,“但是,他们还希望导航栏保持半透明。”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        • 2015-05-14
        • 2019-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多