在我的导航栏 iOS 7 中设置色调/半透明级别的问题
Posted
技术标签:
【中文标题】在我的导航栏 iOS 7 中设置色调/半透明级别的问题【英文标题】:issue setting the tint / translucency level in my navigation bar 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;
【问题讨论】:
【参考方案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];
【讨论】:
以上是关于在我的导航栏 iOS 7 中设置色调/半透明级别的问题的主要内容,如果未能解决你的问题,请参考以下文章