2

当我用 UIView 覆盖所有屏幕时,如何用 UIView 覆盖 UIStatusBar?

4

4 回答 4

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];

享受!

于 2010-04-19T02:07:09.280 回答
2

您可以做的最好的事情是隐藏状态栏:

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]

并在需要时再次显示。

您基本上可以removeFromSuperview随时删除视图。

于 2010-01-18T04:26:25.460 回答
0

如果您试图创建类似UIAlertView的效果,我认为您无法做到这一点。您可以在http://bugreporter.apple.com向 Apple 提出功能增强请求。

于 2010-01-17T11:01:16.423 回答
0

很好,但我做了这两个改变。将 1.0 添加到 UIWindowLevel 仍然隐藏状态栏,我不知道为什么。

self.windowLevel = UIWindowLevelStatusBar+2.0f;

self.userInteractionEnabled = NO;

将 Statusbar userInteractionEnabled 属性设置为 NO 将确保当有人点击此状态栏时,您的滚动视图将滚动到顶部。

于 2010-08-25T01:22:25.340 回答