当我用UIView覆盖所有屏幕时,如何用UIView覆盖UIStatusBar? (苹果手机)

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

我也在争取如何做这个很长一段时间! 终于想通了:)关键是将新窗口的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]; 

请享用!

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

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

并在需要时再次显示。

您可以在任何时候删除视图时删除removeFromSuperview

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

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

 self.windowLevel = UIWindowLevelStatusBar+2.0f; self.userInteractionEnabled = NO; 

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