当我用UIView覆盖所有屏幕时,如何用UIView覆盖UIStatusBar?
答案 0 :(得分:6)
我也在争取如何做这个很长一段时间!终于想通了:)关键是将新窗口的windowLevel设置为真高,以便它存在于所有其他窗口/视图/状态栏等之上:
UIWindow *keyWin = [UIApplication sharedApplication].keyWindow;
UIWindow *hudWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0.0f, 0.0f, keyWin.frame.size.width, keyWin.frame.size.height)];
hudWindow.backgroundColor = [UIColor blackColor];
hudWindow.alpha = 0.60;
[hudWindow setWindowLevel:10000.0f];
[hudWindow setHidden:NO];
享受!
答案 1 :(得分:2)
您可以做的最好的事情是隐藏状态栏:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]
并在需要时再次显示。
您可以在任何时候删除视图时基本上removeFromSuperview
。
答案 2 :(得分:0)
如果您尝试创建类似UIAlertView
的效果,我认为您无法做到这一点。您可以在http://bugreporter.apple.com处向Apple提交功能增强请求。
答案 3 :(得分:0)
很好,但我做了这两个改动。向UIWindowLevel添加1.0仍然会隐藏状态栏,我不知道为什么。
self.windowLevel = UIWindowLevelStatusBar+2.0f;
self.userInteractionEnabled = NO;
将状态栏userInteractionEnabled属性设置为NO将确保当有人点击此状态栏时,您的滚动视图将滚动到顶部。