2

我尝试为 iOS 7 编译我的应用程序,但是当我这样做时,所有组件的位置都发生了变化,状态栏变成了黑色。我怎样才能避免这种情况?

iOS 6 及之前版本:

http://img4.hostingpics.net/thumbs/mini_878656Capturedcran20130913105152.png

IOS 7 :

http://img4.hostingpics.net/thumbs/mini_939873Capturedcran20130913105216.png

4

3 回答 3

5

UI 元素在屏幕上的实际布局方式发生了重大变化,这意味着状态栏的“死区”不再存在,视图获得了屏幕的全尺寸。iOS 开发人员文档页面上有一个 iOS 7 UI 转换指南,其中更详细地介绍了更改以适应视图。

对于状态栏,请查看UIStatusBarand的文档UIStatusBarStyle,它允许您设置黑色特定状态栏,否则默认为 iOS 7 状态栏样式。

于 2013-09-13T09:11:29.007 回答
0

这是因为 iOS 7 和 iOS 6 的结构。

iOS 6 及更低版本:

主视图大小因您添加的栏而异

现在,如果我们考虑 iPhone 5 外壳,那么

空主视图大小:320 & [568 - status barsize[20]] = 548

MainView + 导航栏 = 320 * [568 - 状态栏[20] - 导航栏[49]] = 499

iOS 7 及更高版本:

您的总主视图大小将固定 [320 * 568]

现在在您的情况下,您正在使用导航栏

你只需要检查 [iOS 7 ] 那么你的子视图的框架应该是这样的

subViewframe = 当前帧 + [状态栏高度 + 导航栏高度]

我希望你清楚。

于 2013-09-13T10:48:11.230 回答
0

您是否尝试过自动调整蒙版属性?尝试从 XIB 设置它。我认为这将解决您错误定位控件的问题。

谢谢。

于 2013-09-13T09:37:09.743 回答