首页 > 解决方案 > 获取 iOS 上 NavigationBar 的默认高度(或 maxY)

问题描述

我想知道是否有任何方法可以让我们获得默认的导航栏heightmaxY最好)NavigationController

知道 iOS 11 引入了大标题,那么我们有什么办法可以让“小标题”的导航栏和“大标题”的导航栏默认height(或)?maxY

我问这个的原因是因为我正在使导航栏的背景透明并向其引入我自己的背景(这是一个效果视图)。但我遇到的问题是每次我运行以下代码

self.navigationController?.navigationBar.frame.maxY

它返回的数量比预期的要高:/

我试图在许多回调上运行这段代码 -> onViewWillAppear, onViewDidAppear,onViewDidLoad

标签: iosswiftuinavigationbar

解决方案


您可以使用此获取导航栏和状态栏的高度

  override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        let topSpace:CGFloat?
        if #available(iOS 11.0, *) {
            topSpace = self.view.safeAreaInsets.top
        } else {
            topSpace = self.topLayoutGuide.length
        }
        print(topSpace)
  }

推荐阅读