繁体   English   中英

如何制作覆盖整个屏幕(包括状态栏)的视图?

[英]How to make a view which covers whe whole screen, including the status bar?

我想制作一个部分透明的覆盖层,覆盖整个屏幕,包括状态栏。 我已经看到Tapbot的人们确实做到了。 因此,一定有可能。 状态栏仍然应该可见!

在iPhoneOS 3.2之前:

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

在iPhoneOS 3.2之后:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationNone];

有关这些的更多信息,请参见UIApplication的文档。

隐藏状态栏有两种方法:

通过使用UIApplication sharedApplication在运行时进行编程:

- (void)setStatusBarHidden:(BOOL)hiddenwithAnimation:(UIStatusBarAnimation_)animation

或在设计时使用Info.plist属性UIStatusBarHidden的 yes / no值。

您可以尝试创建一个完整的视图并将其添加为主窗口的子视图。 就像是:

CGRect mainWindowSize = [UIScreen mainScreen].bounds;
UIView* overlay = [[UIView alloc] initWithFrame:mainWindowSize];
// Use colorWithRed:green:blue:alpha: or a solid color then manually tweak alpha
overlay.backgroundColor = [UIColor redColor];
overlay.alpha = 0.2; // transparency level
overlay.userInteractionEnabled = YES;
// Add it on top of the main window
UIWindow* mainWindow = (((MyAppDelegate*) 
          [UIApplication sharedApplication].delegate).window);
[mainWindow addSubview:overlay];

注意事项:您可能必须手动隐藏状态栏。 同样,此叠加视图及其子视图将获取所有用户点击事件。 可能要确保这就是您想要的。

将视图控制器作为modalViewController推送。

如果您的视图控制器是AVC,并且假设您使用的是导航控制器,则:

[self presentModalViewController:AVC animated:YES];

从您当前使用的视图控制器中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM