如何在iPhone上设置透明状态栏

5

在我的应用程序中,我想要将状态栏设置为透明。有三种样式可以用于更改状态栏的样式。

  1. 灰色
  2. 黑色
  3. 黑色半透明

我的代码:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

如何设置透明状态栏?
6个回答

12

这个问题的最佳解决方案是在您的视图控制器中设置self.wantsFullScreenLayout = YES;以及为状态栏设置[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

更新:

正如Mihir Oza在评论中提到的,旧版本答案中的UIStatusBarStyleBlackTranslucent常量现已过时。请改用UIStatusBarStyleLightContent


4
在使用半透明效果时,“wantsFullScreenLayout”非常关键。 - Tim
1
'UIStatusBarStyleBlackTranslucent'已被弃用,请使用UIStatusBarStyleLightContent。 - Mihir Oza
setStatusBarStyle在iOS 9中已被弃用。请使用-[UIViewController preferredStatusBarStyle]。 - Ricardo Anjos

2
在全球应用程序的 info.plist 中添加状态栏样式:透明黑色风格(alpha 0.5)

1

无法使状态栏透明。您只能设置三种可能的样式(灰色、黑色和黑色半透明),并且无法获取栏的UIView。

但是,如果您在其后面有静态内容(即您可以编辑的UI的固定部分),则可以将状态栏设置为黑色半透明,并在栏的后面添加一个50%的白色图层。这使得栏看起来是透明的。

这是我所说的示例。

查看示例http://cl.ly/7WST/Untitled-1.png


1

最好的方法是使用info.plist。请查看Apple的UIKit pList键,特别是UIStatusBarStyle(以及值UIStatusBarStyleBlackTranslucent)来使其半透明,或者使用UIStatusBarHidden键(完全隐藏它)。


0
  1. 在info.plist中设置状态栏样式为透明黑色样式(alpha值为0.5)。
  2. 在viewcontroller.xib中设置大小为全屏,状态栏为无。
  3. 在viewcontroller.m中的viewWillAppear方法中添加以下代码:

self.view.frame = CGRectMake(0,0,320,480);

这对我有用。


-6

您只能在 info.plist 文件中使用 Status bar is initially hidden 属性来隐藏状态栏。


@max:我想将状态栏设置为透明的。谢谢。 - kanmani
是的,我知道。但是只有隐藏它或使UIStatusBarStyleBlackTranslucent成为可能。 - Max
@max:如果我这样写,CODE: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent]; 这是不是会把状态栏变成透明的呢? - kanmani
不对,我让它半透明(alpha = 0.5)。透明是 alpha = 0.0。 - Max
@max:我该如何指定alpha值为0.0以使状态栏透明? - kanmani
请阅读我的回答:这是不可能的。状态栏只有三种预定义样式。 - Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接