首页 > 解决方案 > 如何在 Swift 的 UIView/Utility 类中获取导航栏

问题描述

实际上我需要在自定义视图类中获取导航栏。我可以在我的视图控制器类中获得导航栏的高度。如何获取 UIView/Utiity 通用类中的导航栏高度?. 我只有一个视图控制器,并在该类中添加了导航控制器。我想在任何自定义视图中访问该导航栏高度。

    // works in view controller 
    var navigationBarHeight: CGFloat {
    return UIApplication.shared.statusBarFrame.size.height +
        (self.navigationController?.navigationBar.frame.height ?? 0.0)
}

标签: iosswiftuinavigationcontrolleruinavigationbar

解决方案


您可以使用以下方法获取导航栏的高度:

guard let rootVC = UIApplication.shared.keyWindow?.rootViewController as? UINavigationController else { return }

let navigationBarHeight = rootVC.navigationBar.frame.height

推荐阅读