1

在状态栏最初可见的情况下,我添加了一个子视图并隐藏了状态栏:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[myController.view addSubview:anotherController.view];

在这个视图中,有一个按钮可以切换状态栏的可见性,但是当我再次设置statusBarHiddenNO,视图控制器的视图不会自动调整大小以考虑状态栏,因此视图被按下并切断20 像素。我已经为视图设置了所有适当的调整大小蒙版,还尝试了自动布局,但似乎都不起作用。我希望我的视图在显示/隐藏状态栏时自动调整大小,而无需手动设置其框架。

更新

我没有将其添加到根视图控制器的视图中,而是将其推送到导航控制器的堆栈中,并隐藏了状态栏和导航栏。然后我让用户选择只切换状态栏。但是问题仍然存在,当状态栏重新出现时,视图被推送并切断了 20px。

但是当我旋转设备时,一切都在它的位置 - 只有当我在状态栏被隐藏后旋转设备时。

4

1 回答 1

0

myController 是如何添加到窗口中的?假设 myController 是您窗口的 rootViewController,那么在显示/隐藏状态栏时,该控制器应该正确调整大小。anotherController 的视图应该以另一种方式添加,而不仅仅是添加它的视图。但是,如果您为该视图提供正确的调整大小标志,它也应该调整大小。但是如果你把那个控制器推到一个navigationController上,或者你把它设置为新的rootViewController,那就更好了。

于 2012-11-13T22:41:36.380 回答