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



我正在开发一个iPad应用程序,它应该支持所有方向。我没有用笔尖。我有一个UIWindow,它列出了四个视图:

其中两张占据了整个宽度,但高度不大。
另外两个占据了高度的大部分,并且共享同一个原点x。它们不重叠。

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

问题:旋转后,无论方向如何,状态栏的框架似乎都坚持其原始位置(纵向方向的顶部)。不过,状态栏确实会旋转。

我确实注意到红色眼镜的翔实文章。但是,这并不是完全相同的问题。这在某种意义上是不同的,红眼镜方法通过将主视图设置为窗口的子视图来覆盖状态栏。我已经采取了这种方法,但问题仍然存在。

我试过重新设置和重新进入窗口。willRotateToInterfaceOrientation::中的视图框架运气不好。我已经验证了新的框架/中心是我所期望的。看起来好像背景中正在进行一些重构。

我不知道在这一点上该怎么想…我希望有人能解释一下这个问题。

终于!我让视图连贯地对齐。
原来问题是在didFinishLaunchingWithOptions:

问题是我是通过initWithFrame初始化我的ui窗口:[[uisscreen mainScreen] applicationFrame];

当我使用init初始化时,视图被定位到预期的位置。只有当我在willRotateToInterfaceOrientation(如上所述)中留下重构代码时,它才有效。

在willRotateToInterfaceOrientation:中,我计算并设置了每个视图的正确帧,然后使用UIView animateWithDuration:::::将转换集成到旋转动画中

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

最新更新