我有一个典型的基于视图的应用程序(mainwindow.xib + viewControler.xib),其中我在AppDelegate文件中隐藏了这样的状态......
[[UIApplication sharedApplication] setStatusBarHidden:YES];
然后我在主视图(主要是UIWebViews)上创建各种子视图,全屏位于0,0。然后我创建了一个按钮,使您可以切换状态栏的视图。当我显示状态栏并更改屏幕方向时,我的问题就开始了,视图没有窗口的完整尺寸,并且刚好在状态栏之后(y:20而不是y:0)开始,它们的高度是减少20像素,如果我删除了状态,我可以看到空白区域。
所以问题是这样......代码如何忽略状态栏的存在并始终将新的或重定向的视图定位到0,0而不是0,20(如果显示状态栏)。我认为问题不在于我的主视图,而在于我的MainWindow.xib,但我找不到任何解决方案。
UPDATE1:我也在检查子视图的autoresizingmask属性中的解决方案。
提前完成了......
答案 0 :(得分:7)
我终于找到了解决方案,我可以安然入睡。
解决方案位于属性wantsFullScreenLayout
中,您必须将其设置为YES
。
因此,请访问添加主视图(superview)的appDelegate并添加以下行:
viewController.wantsFullScreenLayout = YES;
在此行之前
[window addSubview:viewController.view];
在AppDelegate.m文件的didFinishLaunchingWithOptions
上。
这样你的超级视图总是使用全屏分辨率,如果状态栏存在则不会调整大小!