在我的一个控制器中,我使用自定义工具栏,我想在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
}