获取 iOS 上 NavigationBar 的默认高度(或 maxY)

Aug*_*rmo 0 uinavigationbar ios swift

我想知道有没有什么办法让我们获得默认的导航栏heightmaxY的最好)NavigationController

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

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

self.navigationController?.navigationBar.frame.maxY
Run Code Online (Sandbox Code Playgroud)

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

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

Raj*_*r R 5

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

  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)
  }
Run Code Online (Sandbox Code Playgroud)