Ios 需要将状态栏设置为纯色,或将子视图添加到状态栏
我正在使用Ios 需要将状态栏设置为纯色,或将子视图添加到状态栏,ios,objective-c,uinavigationcontroller,uinavigationbar,ios7-statusbar,Ios,Objective C,Uinavigationcontroller,Uinavigationbar,Ios7 Statusbar,我正在使用UINavigationController并在整个应用程序中显示导航栏,但我不想向用户显示状态栏。我的问题是,如果我隐藏状态栏,那么导航栏的大小就不足以显示完整的导航栏 我想做以下工作之一: 将状态栏设置为纯色。这将不会显示任何状态栏的内容,它将字面上只是颜色 在状态栏中添加一个子视图,这样我就可以覆盖它的所有“状态”内容。此子视图将只是一个纯色的UIView 这将允许我在顶部有完整大小的“导航栏”,而不必实际显示状态栏内容 编辑: 我一直在尝试以下UIWindow解决方案,但运气不
UINavigationController
并在整个应用程序中显示导航栏,但我不想向用户显示状态栏。我的问题是,如果我隐藏状态栏,那么导航栏的大小就不足以显示完整的导航栏
我想做以下工作之一:
UIWindow
解决方案,但运气不佳。正在my view controller的一个视图中调用以下代码:
方法:
UIWindow *statusWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
statusWindow.windowLevel = UIWindowLevelStatusBar + 1;
statusWindow.hidden = NO;
statusWindow.backgroundColor = [UIColor redColor];
[statusWindow makeKeyAndVisible];
我不能让它工作。我应该隐藏状态栏还是显示状态栏?我试过用上面的代码隐藏和显示它,但我的红色
ui窗口从来不会显示在屏幕上。你唯一能做的就是改变它的颜色或隐藏它。不能向其添加子视图或隐藏其内容 我终于明白了。此代码确实非常有效:
self.statusWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
self.statusWindow.windowLevel = UIWindowLevelStatusBar + 1;
self.statusWindow.hidden = NO;
self.statusWindow.backgroundColor = [UIColor redColor];
[self.statusWindow makeKeyAndVisible];
关键是,statusWindow
不能只是一个局部变量。它必须是实际属性,否则将从内存中解除分配
同样值得一提的是,我甚至不必调用makeKeyAndVisible
来显示它。如果要将状态栏颜色更改为白色(灯光内容)或黑色(默认值)以外的颜色,则更改状态栏颜色将不起作用。如果您想这样做,请告诉我。我如何将其更改为纯色,而不显示任何“状态”内容?对不起,我应该更清楚。你可以改变它的颜色。但内容将是可见的。没有办法隐藏其内容并显示颜色。您在Swift中的何处添加此选项?