【问题标题】:How to make a view which covers whe whole screen, including the status bar?如何制作一个覆盖整个屏幕的视图,包括状态栏?
【发布时间】:2011-03-05 03:06:02
【问题描述】:

我想制作一个部分透明的叠加层,并覆盖整个屏幕,包括状态栏。我已经看到 Tapbots 的人就是这样做的。所以它必须以某种方式成为可能。状态栏应该仍然可见!

【问题讨论】:

  • 考虑重新考虑您的设计。为什么需要隐藏状态栏?即使其他一些应用程序正在这样做,由于审查过程不一致,您仍然可能会因为 UI 违规而被 Apple 拒绝。

标签: iphone


【解决方案1】:

在 iPhoneOS 3.2 之前:

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

iPhoneOS 3.2 之后:

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

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

【讨论】:

  • 隐藏状态栏。但我希望它留在那里,并覆盖它!
  • 如果被覆盖了,你怎么知道它还在?
  • 哦,你想让视图部分透明,我明白了。
  • Jason 重读了这个问题,他希望状态栏通过半透明视图可见。
  • @mystify:在这种情况下,您可以将状态栏的样式更改为黑色半透明。您不应该覆盖状态栏。也就是说,您始终可以将视图放在实际窗口中,并确保它是最上面的视图(将其放在前面并调整其位置)。但是,您最终可能会被拒绝申请。
【解决方案2】:

隐藏状态栏有两种方式:

在运行时以编程方式使用UIApplication sharedApplication:

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

或者在设计时使用 Info.plist 属性UIStatusBarHiddenyes/no 值。

【讨论】:

    【解决方案3】:

    您可以尝试创建一个全尺寸视图并将其添加为主窗口的子视图。比如:

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

    警告:您可能必须手动隐藏状态栏。此外,此覆盖视图及其子视图将获取所有用户点击事件。可能想确保这是您想要的。

    【讨论】:

      【解决方案4】:

      将视图控制器作为 modalViewController....

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

      [self presentModalViewController:AVC animated:YES];
      

      从您所在的当前视图控制器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多