【发布时间】:2015-02-06 07:49:40
【问题描述】:
我正在使用UINavigationController 并在整个应用程序中显示导航栏,但我不想向用户显示状态栏。我的问题是如果我隐藏了状态栏,那么导航栏的大小就不够大,无法呈现完整的导航栏。
我想做以下其中一项:
将状态栏设为纯色。这不会显示任何状态栏内容,它实际上只是颜色。
向状态栏添加一个子视图,这样我就可以覆盖它的所有“状态”内容。这个子视图只是一个纯色的 UIView。
这将允许我在顶部拥有完整大小的“导航栏”,而不必实际显示状态栏内容。
编辑:
我一直在尝试以下UIWindow 解决方法,但没有成功。在我的视图控制器的 viewWillAppear: 方法之一中调用了以下代码:
UIWindow *statusWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
statusWindow.windowLevel = UIWindowLevelStatusBar + 1;
statusWindow.hidden = NO;
statusWindow.backgroundColor = [UIColor redColor];
[statusWindow makeKeyAndVisible];
我无法让它工作。我应该隐藏状态栏还是显示它?我已经尝试使用上面的代码隐藏和显示它,我的红色UIWindow 从未在屏幕上显示。
【问题讨论】:
-
如果你想改变它而不是白色(浅色内容)或黑色(默认),改变状态栏颜色将不起作用。如果你想这样做,请告诉我。
标签: ios objective-c uinavigationcontroller uinavigationbar ios7-statusbar