【问题标题】:iOS 7 Navigation Bar does not stay cleariOS 7 导航栏不清晰
【发布时间】:2014-09-15 01:39:02
【问题描述】:

我希望在 iOS 7 中清晰地显示我的导航栏。我知道以前有人问过这个问题,但我找不到我遇到的具体问题的答案。我使用以下代码在我的 App Delegate 中将导航栏设置为清晰:

UINavigationBar *navigationBarAppearance = [UINavigationBar appearance];
navigationBarAppearance.backgroundColor = [UIColor clearColor];
[navigationBarAppearance setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
navigationBarAppearance.shadowImage = [[UIImage alloc] init];

效果很好,我的第一个导航栏很清晰。然后,当我选择一个按钮并按下一个新的视图控制器时,它的 alpha 值会略有增加。看起来像黑色,带有大约 20% 的 alpha。看这里的图片:

然后当我按下后退按钮时,第一个视图具有相同的轻微 alpha 增加影响。

我已在第二个视图控制器中注释掉所有对导航栏的引用,以确保我不会意外更改某些内容。我检查了第一个和第二个视图控制器之间的 IB 差异,也找不到任何东西。扯掉我的头发!

【问题讨论】:

  • 将色调颜色更改为 clearColor。
  • 这个我也试过了

标签: ios ios7 uinavigationbar


【解决方案1】:

不出所料,我在代码中遗漏了一些东西!

视图控制器继承自自定义视图控制器类,该类在导航栏上设置 alpha。

【讨论】:

    【解决方案2】:

    试试这个!

    navigationBarAppearance.layer.backgroundColor = [UIColor clearColor].CGColor;
    

    【讨论】:

      【解决方案3】:

      尝试在 viewDidAppear 中将 translucent 属性设置为 YES

      navigationBarAppearance.translucent = YES;
      

      【讨论】:

      • navigationBarAppearance 的属性是什么?
      • @JeffN,它是 UINavigationBar.h 的一个属性
      • self.navigationController.navigationBar.navigationBarAppearance.translucent = YES; 给我一个“在UINavigationBar 类型的对象上找不到“属性'navigationBarAppearance'”
      • yup iOS 7。这对我有用: UINavigationBar *navigationBarAppearance = [UINavigationBar appearance]; navigationBarAppearance.translucent = YES;