问题在我的导航栏iOS 7中设置色调/半透明度

时间:2014-07-14 21:48:48

标签: ios objective-c uinavigationcontroller uinavigationbar

我正在尝试为我的视图找到一个漂亮的半透明黑色导航栏。背景图片是一个漂亮的黑色和白色,所以应用程序中的自动半透明应该是足够的,但是当我运行应用程序时,我得到一个几乎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;

这就是我得到的结果:

enter image description here

奇怪的是,正如我提到的当segue呈现视图时,导航栏只有一个外观,当它完全呈现时它有一个完全不同的外观,见图像:

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

enter image description here

这是在它满载之后:

enter image description here

我真的很感激你的帮助,谢谢你。

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

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

      [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];

      return YES;
    }

2 个答案:

答案 0 :(得分:0)

如果您希望此样式适用于您应用程序中的所有唠叨栏,那么我建议您通过外观代理设置导航栏样式。

在您的AppDelegate.m(或您的app delegate文件中的任何内容)中,将didFinishLaunchingWithOptions:方法替换为下面的方法

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

      [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];

      return YES;
    }

将UIBarStyleDefault用于通常的半透明条。

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

答案 1 :(得分:0)

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

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