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

时间:2010-05-30 16:14:38

标签: iphone

我想制作一个部分透明的叠加层,并覆盖整个屏幕,包括状态栏。我已经看到了tapbots的人就是这么做的。所以一定有可能。状态栏应该仍然可见!

4 个答案:

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

来自您当前的视图控制器。