状态栏重新出现时,视图控制器不会自动调整大小

时间:2012-11-13 22:30:17

标签: ios cocoa-touch

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

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

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

更新

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

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

1 个答案:

答案 0 :(得分:0)

myController是如何添加到窗口的?假设myController是窗口的rootViewController,那么在显示/隐藏statusBar时,此控制器应该正确调整大小。应该以另一种方式添加anotherController的视图,而不仅仅是添加其视图。但是,如果你给那个视图正确的调整大小标志,它也应该调整大小。但是如果你在navigationController上推送该控制器,或者将它设置为新的rootViewController,那会更好。

相关问题