iOS 6和iOS7之间的UIScreen界限和applicationFrame区别

时间:2013-11-06 10:08:12

标签: iphone ios7 bounds uiscreen

使用iPhone4s iOS7,屏幕方向为横向

- 使用以下SDK构建应用程序

我使用iOS6 SDK和iOS7 SDK构建了应用程序,并检查了每个屏幕分辨率。下面显示了结果:

iOS6 SDK:

[[UIScreen mainScreen] bounds]           == (0, 0, 320, 480)
[[UIScreen mainScreen] applicationFrame] == (0, 0, 300, 480)

iOS7 SDK:

[[UIScreen mainScreen] bounds]           == (0, 0, 300, 480)
[[UIScreen mainScreen] applicationFrame] == (0, 0, 320, 480)

为什么我们在iOS7中获得反转值?

1 个答案:

答案 0 :(得分:2)

是。在iOS6及更低版本中,状态栏不包含在视图中。但在iOS7中,状态栏包含在主视图中。如果您使用的是导航控制器,则可以通过设置导航栏的Translucent和Opaque属性来获得iOS6行为。

[self.navigationController.navigationBar setOpaque:YES];
[self.navigationController.navigationBar setTranslucent:NO];

同样,iOS7中的标签栏也是半透明的。您可以通过设置这些属性将它们设置为不透明。

[self.tabBarController.tabBar setOpaque:YES];
[self.tabBarController.tabBar setTranslucent:NO];