0

我正在 iOS 7 上编写应用程序,但我似乎无法处理导航栏和工具栏的透明度,如何将导航栏设置为黑色,不透明度为 50%?

我已经阅读了过渡到 ios7 指南并且我已经观看了 wwdc13 第 214 课,但是我的状态栏仍然具有与所附导航栏的其余部分不同的透明度。

这是我的代码:

// APP-WIDE THEMING
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackOpaque];
[[UINavigationBar appearance] setBackgroundColor:[UIColor blueColor]];  
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

这是我的问题的截图:http: //grab.by/qiyU

4

4 回答 4

8

将背景图像设置为 nil,并将背景颜色设置为 alpha。

[ctrl.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; 
ctrl.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:0 Green:0 Blue:0 Alpha:.5];
于 2014-06-30T09:09:29.970 回答
0

根据此处发布的答案,可以创建一个透明的 UINavigationBar: How to draw a transparent UIToolbar or UINavigationBar in iOS7

但是,您想创建一个半透明的导航栏。为此,据我所知,您必须创建一个 1 px 的大图像,其中包含具有 50% 不透明度的黑色。将此添加为导航栏的背景图像。

这个片段应该可以解决问题:

[[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];
UIImage* sti = [UIImage imageNamed:@"EMT_SemiTransparent.png"];
[[UINavigationBar appearance] setBackgroundImage:sti forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:UIColor.clearColor];
于 2014-03-19T23:59:29.820 回答
-1

尝试在您的 pList 文件中将键 [基于控制器的状态栏外观] 设置为 NO。

我遇到了一些奇怪的问题,状态栏似乎不受代码更改的影响,这为我解决了这个问题。

参考:https ://stackoverflow.com/a/18184831/2962193

于 2014-03-04T05:25:44.557 回答
-2

设置 alpha 值以使其透明。

[[UINavigationBar appearance] setAlpha:0.5f];
于 2013-09-16T12:23:43.763 回答