默认导航条高度iOS



在我的一个控制器中,我使用自定义工具栏,我想在iOS中获得默认工具栏(导航栏)的高度。我使用了宏#define NAVBAR_HEIGHT self.navigationController.navigationBar.frame.size.height

但是,当不将控制器嵌入到导航堆栈中时,宏将返回零。

我不想使用44的常数,因为它可能在其他Apple设备上有所不同。

对于标签栏,我使用:

+(CGFloat)getTabBarHeight{
    UITabBarController *tabBarController = [UITabBarController new];
    CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
    return tabBarHeight;
}

是否有类似的片段,所以我可以返回导航控制器工具栏的值?

我不确定目标C-但是在Swift 3/4中,您可以做

func getNavBarHeight() -> CGFloat {
    return self.navigationController?.navigationBar.frame.size.height
}

这要求您将viewController嵌入UinavigationController中。如果您没有这个,则可以:

func getNavBarHeight() -> CGFloat {
    let nav = UINavigationController()
    return nav.navigationBar.frame.size.height
}

最新更新