显示/隐藏iPhone状态栏后调整内容大小

pqn*_*net 11 ios

我有一个iPhone应用程序,我想从隐藏状态栏开始,显示启动画面,并在加载要显示的内容时切换状态栏(这需要一些时间,因为它必须通过互联网加载),使用[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES].我希望我的内容视图在状态栏显示和隐藏后调整大小并正确定位.我希望我的应用程序能够以任何设备方向运行(可能不包括苹果指南中指定的自上而下的方向).

我的问题是我无法让应用程序显示出来.它在自动旋转后显示20pt的空白区域,或者在显示时隐藏在状态栏下方.

处理这个问题的正确方法应该是什么?

我还没有测试过它,但我猜这个问题会出现在来电吧.

编辑:

我会试着更好地解释问题所在.当应用程序启动时,状态栏隐藏,在窗口坐标系中,窗口可见区域的顶角在窗口坐标系中为0,0.然后我在状态栏中滑动.这不会改变窗口大小,因此0,0点现在隐藏在状态栏后面.窗口可见区域的左上角是0,20,我必须将视图移动到那些坐标(并将其正确调整为320*460).但是如果我旋转设备,然后回到原始位置,可见窗口区域的左上角坐标再次变为0,0,窗口现在大小为320*480.

一个解决方法是保持一个标志,告诉手机之前是否已经旋转,但是当我旋转到另一个位置然后回来时,是否有办法让窗口坐标不变?

Wal*_*ers 1

是的,呼叫栏也会出现同样的问题。或者,录音栏也可以做同样的事情。(启动语音备忘录应用程序录音并返回您的应用程序以测试它如何处理额外的栏更容易,也许更便宜。)

在视图上设置自动调整大小蒙版通常可以为您进行调整。

如果您在 XIB 中构建 UI,则可以使用这些设置,直到您的视图在栏更改或设备或模拟器旋转时正确更改大小。

请记住,所包含的子视图上的遮罩设置也很重要。