状态栏和超视图框架大小

时间:2010-08-31 22:59:35

标签: objective-c xcode

我有一个典型的基于视图的应用程序(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属性中的解决方案。

提前完成了......

1 个答案:

答案 0 :(得分:7)

我终于找到了解决方案,我可以安然入睡。

解决方案位于属性wantsFullScreenLayout中,您必须将其设置为YES。 因此,请访问添加主视图(superview)的appDelegate并添加以下行:

viewController.wantsFullScreenLayout = YES;

在此行之前

 [window addSubview:viewController.view];

在AppDelegate.m文件的didFinishLaunchingWithOptions上。

这样你的超级视图总是使用全屏分辨率,如果状态栏存在则不会调整大小!