【问题标题】:How to make a UIView that can cover the navigation bar?如何制作一个可以覆盖导航栏的UIView?
【发布时间】:2010-08-18 10:44:08
【问题描述】:

我想全屏显示UIView,但显示状态栏,其他东西,比如导航栏需要被UIView覆盖。

我该怎么做?

【问题讨论】:

    标签: iphone ios objective-c iphone-sdk-3.0


    【解决方案1】:

    我相信他要问的是如何让 UIView 覆盖整个屏幕(有点像自定义弹出窗口)。这正是我最终来到这里的原因。所以我会提供我的解决方案。在任何地方调用这个函数。

    [self.navigationController.view addSubview:yourUIView];
    

    这里你介绍的视图覆盖了整个屏幕,不像

    [self.view addSubview:yourUIView]; 
    

    因此,导航栏被揭开。

    【讨论】:

    • 谢谢字节..它帮助了我..我试图在导航控制器的导航栏中添加视图..它不允许用户交互..但是当我按照你提到的那样做时,它可以工作正如预期的那样..
    • 这对我很有帮助。是否可以添加动画。就像一个滑下来的动画
    • @Mr.G 只是偏移yourUIView的框架,使用UIView方法+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations
    • @Byte 感谢您的回复。我设法做到了。再次感谢:>
    • 这适用于 iOS 7 和 iOS 8。在 iOS 9 上,键盘关闭事件将从层次结构中删除视图。前任。显示警报样式的视图并触发键盘在后台关闭。
    【解决方案2】:

    将视图作为子视图直接添加到主 UIWindow 实例。

    【讨论】:

      【解决方案3】:

      有点难以完全理解这个问题,但我想你是在问如何在另一个视图上方显示UIView(这样带有导航控件的视图完全被第二个视图隐藏)?

      UIViewController 有:

      - (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
      

      将您的第二个视图也由UIViewController 管理是明智的。例如,假设您的导航栏视图由UINavigationViewController 管理,而您要显示的视图由otherViewController 管理...

      [navigationViewController presentModalViewController:otherViewController animated:YES];
      

      【讨论】:

      • 我有一个 UIView 视图,称为“mainUIView”,还有一个称为“subUIView”的 UIView,我希望 subUIView 填充屏幕,状态栏除外。
      • 好的,有两个选择 - 使用 UIViewControllers 并根据需要显示/显示,或者直接将 subUIView 添加为 mainUIView 或应用程序的 UIWindow 的子视图(如下面的 Eiko 建议)。两者都可以,但在不了解您的用例的情况下,我不能说哪个更好/更合适。
      【解决方案4】:

      我知道 OP 正在寻找一种完全覆盖导航栏的方法,但您可以暂时隐藏它,而不是覆盖它。隐藏后,您可以将视图添加为子视图并更改其框架或约束,使其占据整个屏幕。

      - (void)showViewOverNavBar:(UIView *)view {
      
          [self.navigationController setNavigationBarHidden:YES];
          [self.view addSubview:view];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 2014-10-31
        • 2022-01-21
        • 2021-08-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多