我尝试为 iOS 7 编译我的应用程序,但是当我这样做时,所有组件的位置都发生了变化,状态栏变成了黑色。我怎样才能避免这种情况?
iOS 6 及之前版本:
http://img4.hostingpics.net/thumbs/mini_878656Capturedcran20130913105152.png
IOS 7 :
http://img4.hostingpics.net/thumbs/mini_939873Capturedcran20130913105216.png
我尝试为 iOS 7 编译我的应用程序,但是当我这样做时,所有组件的位置都发生了变化,状态栏变成了黑色。我怎样才能避免这种情况?
iOS 6 及之前版本:
http://img4.hostingpics.net/thumbs/mini_878656Capturedcran20130913105152.png
IOS 7 :
http://img4.hostingpics.net/thumbs/mini_939873Capturedcran20130913105216.png
UI 元素在屏幕上的实际布局方式发生了重大变化,这意味着状态栏的“死区”不再存在,视图获得了屏幕的全尺寸。iOS 开发人员文档页面上有一个 iOS 7 UI 转换指南,其中更详细地介绍了更改以适应视图。
对于状态栏,请查看UIStatusBar
and的文档UIStatusBarStyle
,它允许您设置黑色特定状态栏,否则默认为 iOS 7 状态栏样式。
这是因为 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 = 当前帧 + [状态栏高度 + 导航栏高度]
我希望你清楚。
您是否尝试过自动调整蒙版属性?尝试从 XIB 设置它。我认为这将解决您错误定位控件的问题。
谢谢。