iOS 7 状态栏透明度

Posted

技术标签:

【中文标题】iOS 7 状态栏透明度【英文标题】:iOS 7 Status bar transparency 【发布时间】:2014-01-21 10:36:08 【问题描述】:

我被一些看起来微不足道的事情困住了,但我真的不明白发生了什么。

我正在使用 ios 7 SDK 进行编译,无法使状态栏透明。它是全黑的。在我的 .plist 中,Status bar styleTransparent black style (alpha of 0.5)。我已经尝试了所有其他选项,但我无法让它发挥作用。

我仍然需要支持 iOS 6,但我希望 iOS 7 状态栏默认是透明的,对吧?

有什么可能导致这种情况的想法吗?

谢谢

【问题讨论】:

iOS 7 状态栏默认是透明的。我刚刚回答了一个类似的问题here。 【参考方案1】:

我会回答我自己的问题,对于浪费时间感到抱歉。

我的错误是,状态栏透明的。但无论出于何种原因,打电话

[self.navigationController setNavigationBarHidden:YES animated:YES];

将滚动视图的顶部插图从 0.f 更改为 20.f...所以,我的状态栏下方有一个黑色背景,因此是一个黑色状态栏。

还是谢谢!

【讨论】:

为了记录,错误来自automaticallyAdjustsScrollViewInsets设置为YES 你让我很开心。在 UIPageViewController 中初始显示视图时遇到了同样的问题。 UIPageViewController 位于状态栏下方,但控制器中的初始页面将在状态栏下方偏移。我还使用 setNavigationBarHidden 和动画来显示页面控制器。在页面控制器中将 automaticAdjustsScrollViewInsets 设置为 NO 修复了它。你刚刚结束了把我的头撞到墙上的一天……谢谢。 :)【参考方案2】:

将此代码添加到您的 .m 文件中:

- (UIStatusBarStyle)preferredStatusBarStyle

    return UIStatusBarStyleLightContent;

【讨论】:

我试过这个,这几乎是所有关于这个的答案。无论View controller-based status bar appearance 在此 info.plist 中设置为什么,都不会调用此函数(不能触发断点,也不能触发 NSLog)【参考方案3】:

希望对你有帮助

self.navigationController.navigationBar.translucent = YES;

【讨论】:

以上是关于iOS 7 状态栏透明度的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7状态栏半透明,具有向后兼容性

带有透明/模糊导航栏的 iOS 7 视图控制器布局问题

在 ios 7 中制作透明导航栏和透明标签栏。

iOS Swift 4 状态栏 - 禁用半透明

iOS 7 半透明标签栏和导航栏

如何使iOS中的PhoneGap状态栏半透明?