[英]How do you create an invisible button that covers the whole screen including navigation controller?
[英]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.