0

idev101.com谈到加载图像并明确表示屏幕不包括状态栏高度。

然而,在我在 iOS 7 下看到的情况中,似乎一旦进入应用程序(暂时不考虑加载),状态栏就会呈现在背景上,因此背景尺寸包括状态栏下的一些内容. (如果您的背景顶部主要有深色和黑色图像,并且状态栏的背景是黑色的,那么它比浅色背景上的黑色更难阅读。)

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

TIA,

4

1 回答 1

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

于 2013-09-26T20:19:20.180 回答