状态栏框架坚持纵向方向并遮挡window.view

时间:2011-10-29 02:07:48

标签: ios ipad orientation frame statusbar

我正在开发一款应该支持所有方向的iPad应用程序。我不是在使用笔尖。我有一个UIWindow,它可以列出四个视图:

其中两个占据全宽,但高度不高 另外两个占据了高度的大部分,并且共享相同的origin.x。它们不重叠。

我指定一个视图作为主窗口的子视图,并将其余视图子视图到window.view。

问题:旋转后,无论方向如何,都会显示状态栏的框架粘在原始位置(纵向方向顶部)。虽然,状态栏确实旋转。

我注意到了red-glasses内容丰富的文章。但是,这似乎没有出现相同的问题。在红眼镜方法通过将主视图设置为窗口的子视图来覆盖状态栏条的意义上,这是不同的。我采用了这种方法,但问题仍然存在。

我尝试过重新编辑并重新定位willRotateToInterfaceOrientation中的window.view框架:: 运气不好。我已经确认新框架/中心是我所期望的。看起来好像在后台进行了一些重构。

我不确定此时要考虑什么...... 我希望有人可以对这个问题有所了解。

1 个答案:

答案 0 :(得分:1)

最后!我把观点连贯地排列在一起 原来问题出在didFinishLaunchingWithOptions:

问题是我是通过initWithFrame初始化我的UIWindow:[[UIScreen mainScreen] applicationFrame];

当我使用init初始化时,视图按预期定位。它仅在我将重构代码保留在willRotateToInterfaceOrientation中时才有效:(如上所述)。

在willRotateToInterfaceOrientation:中,我为每个视图计算并设置了正确的帧,然后使用UIView animateWithDuration :::::

将转换集成到旋转动画中

我将新帧设置在animateWithDuration的倒数第二个选择器参数中。

希望这有助于某人...