iOS 7 状态栏透明度
Posted
技术标签:
【中文标题】iOS 7 状态栏透明度【英文标题】:iOS 7 Status bar transparency 【发布时间】:2014-01-21 10:36:08 【问题描述】:我被一些看起来微不足道的事情困住了,但我真的不明白发生了什么。
我正在使用 ios 7 SDK 进行编译,无法使状态栏透明。它是全黑的。在我的 .plist 中,Status bar style
是 Transparent 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 状态栏透明度的主要内容,如果未能解决你的问题,请参考以下文章