28

本周发布了 iOS 7 Beta ,每当有更新出现时,这些总是必须更新应用程序以实现兼容性,这会带来一些错误。

好吧,我在我的 iPhone 上安装了 iOS 7 并且应用程序原理运行良好,然后安装了 Xcode 5(预览版)并编译了我的项目,我意识到新的 statusBar 现在完全平静了,你的视图控制器将作为她的背景出现。

这就是问题出现的地方,屏幕底部有一个 20px 的白色带,因为视图控制器已经获得了曾经是 statusBar 的空间。

如果我在我的情节提要中解决这个问题就可以了,但是在 iOS 6 中,由于 20px 状态栏的问题仍然存在,屏幕将被切断。

我认为简单的解决方案是在启动时检查 iOS 的版本并根据每个版本创建一个故事板。在我的项目中,我有 3 个故事板,iPhone 3.5'、'iPhone 4' 和 'iPad'。很快就必须再创建 3 个故事板,因为这些 20 像素。

那将是最好的解决方案?我有其他选择吗?

对不起,很长的文字。欢迎任何帮助!

4

1 回答 1

31

它实际上是对旧错误的修复。早期版本的 Xcode 没有正确处理状态栏,因此人们将窗口的 Y 参数设置为零。正确的值是 20,即状态栏的垂直厚度。

我隐约记得 Interface Builder 中还有一个参数可以让您指定状态栏是否存在,这会将 Y 参数添加 20。这也不能正常工作。

现在该错误已得到修复,所有旧窗口将比应有的高 20 像素(基本上在状态栏下方)。

Apple 开发论坛上的共识是,Apple 将在 Interface Builder 中添加一种指定 iOS6 与 iOS7 行为的方法来解决此问题。

于 2013-06-15T09:05:23.133 回答