Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图隐藏iPhone状态栏的空白_Iphone - Fatal编程技术网

试图隐藏iPhone状态栏的空白

试图隐藏iPhone状态栏的空白,iphone,Iphone,我有一个顶部带有UIImage的滚动视图UIImage有自己的view controller类 滚动视图位于主根控制器上。我向根控制器添加了隐藏状态栏方法,但是当我运行程序时,状态栏消失,但留下一个空白,并且视图不会在状态栏空白处增长。我厌倦了其他方法,但我仍然得到了同样的空白,我也尝试启用了垂直滚动,它看起来像是状态栏在我所有视图的顶部,当我向上滚动时,它一直在状态栏下向上滚动 这可能是什么原因造成的?您刚刚隐藏了状态栏,似乎其他组件没有自动扩展以占据该空间。确保在主根控制器下的所有组件中启用

我有一个顶部带有UIImage的滚动视图UIImage有自己的view controller类 滚动视图位于主根控制器上。我向根控制器添加了隐藏状态栏方法,但是当我运行程序时,状态栏消失,但留下一个空白,并且视图不会在状态栏空白处增长。我厌倦了其他方法,但我仍然得到了同样的空白,我也尝试启用了垂直滚动,它看起来像是状态栏在我所有视图的顶部,当我向上滚动时,它一直在状态栏下向上滚动


这可能是什么原因造成的?

您刚刚隐藏了状态栏,似乎其他组件没有自动扩展以占据该空间。确保在主根控制器下的所有组件中启用了“自动调整子视图大小”

如果这没有帮助,您可以尝试在代码中重新定位视图并调整其大小。比如:

CGRect frame = self.view.frame;
frame.origin.y -= statusBar.height;
frame.size.height += statusBar.height;
self.view.frame = frame;

以下是JOMs的后续有用解决方案,具有动态状态栏高度(任何人都不应依赖于注释所示的20px的状态栏):


顺便说一句:在我的情况下,我需要重新计算帧并使其适应可见的状态栏。

我遇到了同样的问题,我可以通过添加对

// Where self == Your View Controller with the status bar hidden 
[self setWantsFullScreenLayout:YES];
然后我把它放在视图控制器的init方法中,状态栏隐藏在那里。然后,我将以下代码添加到view-did-load或view-will-load方法中

if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
    [[UIApplication sharedApplication] setStatusBarHidden:hide withAnimation:NO];
} else {  // Deprecated in iOS 3.2+.
    id sharedApp = [UIApplication sharedApplication];  // Get around deprecation warnings.
    [sharedApp setStatusBarHidden:hide animated:NO];
}

这将允许您拥有一个带有状态栏的视图控制器和一个不带状态栏的视图控制器。例如,照片应用程序就是这样做的

非常感谢这是我的问题的解决方案视图被锁定,并且每个视图的大小为320 X 460,我还将高度更改为480,对于要复制和粘贴此示例的视图,请将statusBar.height更改为值20,这将调整以覆盖状态栏。
if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
    [[UIApplication sharedApplication] setStatusBarHidden:hide withAnimation:NO];
} else {  // Deprecated in iOS 3.2+.
    id sharedApp = [UIApplication sharedApplication];  // Get around deprecation warnings.
    [sharedApp setStatusBarHidden:hide animated:NO];
}