How to cover also the UIStatusBar with UIView when i cover all the screen with the UIView? (iPhone)

左心房为你撑大大i 提交于 2019-12-05 04:16:28

问题


How to cover also the UIStatusBar with UIView when i cover all the screen with the UIView?


回答1:


I was battling how to do this for a long time too! Finally figured it out :) The key is to set the windowLevel of your new window to really high so it lives on top of all the other windows/views/statusbar etc:

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

Enjoy!




回答2:


The best thing you can do is hide the status bar with:

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

and show it again when you need it.

You can basically removeFromSuperview any time you want to remove the view.




回答3:


If you're trying to create a UIAlertView-like effect, I don't think you can do this. You might file a feature enhancement request with Apple at http://bugreporter.apple.com.




回答4:


Nice, but I made these two changes. Adding 1.0 to UIWindowLevel still hides the status bar, and I have no idea why.

self.windowLevel = UIWindowLevelStatusBar+2.0f;

self.userInteractionEnabled = NO;

Setting the Statusbar userInteractionEnabled property to NO will ensure that your scroll views will scroll to top when someone taps on this statusbar.



来源:https://stackoverflow.com/questions/2080714/how-to-cover-also-the-uistatusbar-with-uiview-when-i-cover-all-the-screen-with-t

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!