2010-01-17 89 views

回答

0

如果你想创建类似UIAlertView的效果,我认为你不能这样做。您可能会在http://bugreporter.apple.com处向Apple提交功能增强请求。

+0

这是可行的,只需使用UIWindow即可。我用我使用的方法添加了一个答案。 – Sahil 2010-04-25 03:38:46

2

你能做的最好的事情是与隐藏状态栏:

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

,并再次显示它时,你需要它。

你可以基本上removeFromSuperview任何时候你想删除视图。

+1

该API已被弃用。替换是'setStatusBarHidden:withAnimation:'。 – ThomasW 2013-07-31 10:39:32

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

享受!

+0

我挖了一点,发现windowLevel属性有一些常量表示某些级别: const UIWindowLevel UIWindowLevelNormal; const UIWindowLevel UIWindowLevelAlert; const UIWindowLevel UIWindowLevelStatusBar; 我发现UIWindowLevelStatusBar的窍门。 – Sahil 2010-04-20 00:56:22

+0

请注意,如果您在应用程序启动时调用'keyWindow',则值可能为零。最好使用[[UIScreen mainScreen]边界]来获得窗口框架。 – ThomasW 2013-08-02 10:18:48

+0

当键盘在屏幕上时,这不起作用。 – RaffAl 2014-03-25 14:04:48

0

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

self.windowLevel = UIWindowLevelStatusBar+2.0f; 

self.userInteractionEnabled = NO; 

设置状态栏userInteractionEnabled属性为NO将确保您的滚动视图会滚动,当有人在此状态栏水龙头顶部。