【问题标题】:issue setting the tint / translucency level in my navigation bar iOS 7在我的导航栏 iOS 7 中设置色调/半透明级别的问题
【发布时间】:2014-07-14 21:48:47
【问题描述】:

我正在尝试为我的视图制作一个漂亮的半透明深色导航栏。背景图像是漂亮的黑白,所以应用程序中的自动半透明应该足够了,但是当我运行应用程序时,我得到一个几乎 100% 不透明的白色导航栏。

我已经查看了网站上的许多问题,并尝试了许多提供的答案,但没有运气,我看过这个:

Achieving bright, vivid colors for an iOS 7 translucent UINavigationBar'

还有这个

http://www.appcoda.com/customize-navigation-status-bar-ios-7/

但是我仍然没有得到我正在寻找的解决方案,我得到的关闭是当视图最初出现时它具有正确的级别,一旦 segue 结束,导航栏就会变得完全不透明。这是我现在正在尝试使用的代码:

 self.navigationController.navigationBar.alpha= .8f;
    self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
    self.navigationController.navigationBar.translucent = YES;

这是我得到的结果:

奇怪的是,正如我在 segue 呈现视图时提到的那样,导航栏有一个外观,而当它完全呈现时,它具有完全不同的外观,请看图片:

这是在视图完全加载之前:

这是在它完全加载之后:

非常感谢您的帮助,谢谢。

编辑:我尝试了以下代码但没有成功:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      // Override point for customization after application launch.

      [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];

      return YES;
    }

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uinavigationbar


    【解决方案1】:

    如果您希望应用程序中的所有导航栏都使用这种样式,那么我建议您通过外观代理设置导航栏样式。

    在您的 AppDelegate.m(或任何您的应用委托文件)中,将 didFinishLaunchingWithOptions: 方法替换为下面的方法

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
        {
          // Override point for customization after application launch.
    
          [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
    
          return YES;
        }
    

    对通常的半透明条使用 UIBarStyleDefault。

    试试这个,告诉我它是否有效

    【讨论】:

    • @vzm 另外,我注意到在您发布的代码中,您的第二行有 self.navigationController.navigationBar.tintColor = [UIColor blackColor];。这只会设置 nag bar 上的东西的颜色,而不是 bar 本身。要设置导航栏的颜色,请使用self.navigationController.navigationBar.barTintColor = <whatever colour you want>;
    • 谢谢,这实际上是我的一个错字;)
    • 据我所知,Apple 并不真正希望您更改导航栏的 alpha。但是有一些解决方法。这是一个类似的问题,可能会有所帮助。 Similar Question
    【解决方案2】:

    我相信这是自 iOS 7.0.3 以来的一个问题。试试这个。使用之前使用的颜色,但设置 alpha = 0.67。

    UIColor * navColor = ...; self.navigationBar.barTintColor = [navColor colorWithAlphaComponent:0.67];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2021-12-24
      相关资源
      最近更新 更多