iOS状态栏会占用7.0的背景空间吗?在7.0之前?

时间:2013-09-26 20:07:01

标签: iphone ios ipad ios-simulator ios7

idev101.com谈到加载图片,并明确指出屏幕不包括状态栏高度。

然而,在iOS 7中看到的,似乎一旦一个应用程序中(暂不考虑加载),状态栏就会在背景上呈现,以便背景维度包括状态栏下的一些内容。 (如果背景顶部主要有黑色和黑色图像,背景上状态栏为黑色,则在浅色背景下阅读比黑色更难。)

所以,这可能会打开一些蠕虫,如果要适应iOS 7和之前的iOS版本以及不同的iPhone和iPad分辨率,完全覆盖所需的基础是什么?如果你说背景不必完全等于它的空间,我可以看到事情更简单,但是底部可能会丢失20像素的图像是可以接受的,但是当前规则和可以设置的背景的最佳实践是什么任何决议?例如。在运行iOS 7的新iPad 4上,应该有双倍的1024x768,顶部的20个像素足以与黑色文本形成对比(或者,另一个问题是,是否可以指定白色或浅色状态栏文本和符号将对比适当地对着较暗的背景)?

TIA,

1 个答案:

答案 0 :(得分:1)

在iOS6上,仅当wantsFullScreenYES并且状态栏和导航控制器样式为半透明时,状态栏才会显示在视图控制器上。

在iOS7上,默认情况下,视图控制器始终为全屏,状态栏和导航栏为半透明。你可以禁用它,但它确实会破坏你的应用程序,特别是如果它显示图像等内容。

在iOS7上,为什么不根据你的内容设置状态栏样式?在iOS7中,可以确定每个视图控制器的状态栏样式:

https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/preferredStatusBarStyle

您可以计算,如果您的内容很暗,请返回UIStatusBarStyleLightContent。这样,状态栏文本将变为白色。甚至可以制作动画。

如果您有一个更改内容的视图控制器,则可以调用setNeedsStatusBarAppearanceUpdate来更新状态栏样式。

https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/setNeedsStatusBarAppearanceUpdate