我想制作一个部分透明的叠加层,并覆盖整个屏幕,包括状态栏。我已经看到了tapbots的人就是这么做的。所以一定有可能。状态栏应该仍然可见!
答案 0 :(得分:0)
在iPhoneOS 3.2之前:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
在iPhoneOS 3.2之后:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationNone];
有关这些内容的详细信息,请参阅UIApplication的文档。
答案 1 :(得分:0)
隐藏状态栏有两种方法:
使用UIApplication sharedApplication:
在运行时以编程方式运行- (void)setStatusBarHidden:(BOOL)hiddenwithAnimation:(UIStatusBarAnimation_)animation
或者在设计时使用Info.plist属性UIStatusBarHidden是/否值。
答案 2 :(得分:0)
您可以尝试创建一个完整大小的视图,并将其添加为主窗口的子视图。类似的东西:
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];
警告:您可能必须手动隐藏状态栏。此外,此叠加视图及其子视图将获取所有用户点击事件。可能想确保这就是你想要的。
答案 3 :(得分:0)
将视图控制器推送为modalViewController ....
如果您的视图控制器是AVC并假设您使用导航控制器:
[self presentModalViewController:AVC animated:YES];
来自您当前的视图控制器。