首页 文章

iPhone X隐藏视图控制器上的家庭指示器

提问于
浏览
17

我有一个视图控制器,从上到下占据整个屏幕 . 我想隐藏iPhone X设备屏幕底部的主条形指示器 .

我怎么能在iOS 11中这样做?

5 回答

  • 9

    如果 window?.rootViewControllerUITabBarControllerUINavigationController ,只需继承它并添加两个函数,如下所示,

    override var prefersHomeIndicatorAutoHidden: Bool {
        return true
    }
    
    //@available(iOS 11, *)
    override var childViewControllerForHomeIndicatorAutoHidden: UIViewController? {
        return nil
    }
    
  • 26

    还有另一种选择 . 如果您正在寻找指示器变暗的行为,那么当用户向上滑动时它会激活,当它们再次向上滑动时,将调用主动作(IE,需要两次滑动才能调用),然后答案就在这里:iPhone X home indicator behavior . 缺点是覆盖你的UIViewController:

    override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
      return .bottom
    }
    

    prefersHomeIndicatorAutoHidden 仅隐藏指示符,但不会抑制手势 .

    而且你会得到你想要的东西(如果我理解你的评论正确 - 你的问题和选定的答案似乎暗示了另一个答案) .

  • 2
    override func  prefersHomeIndicatorAutoHidden() -> Bool {
        return true
    }
    

    我想您可以在AppDelegate中添加此方法,以便在所有ViewControllers上隐藏主页指示器 .

    enter image description here

  • 3

    您应该在视图控制器中覆盖 prefersHomeIndicatorAutoHidden 以实现:

    override var prefersHomeIndicatorAutoHidden: Bool {
        return true
    }
    
  • 2

    UIViewController 中实现 -(BOOL)prefersHomeIndicatorAutoHidden 并返回 YES .

    阅读更多https://developer.apple.com/documentation/uikit/uiviewcontroller/2887510-prefershomeindicatorautohidden .

相关问题