2016-12-05 136 views
0

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

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

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

对于标签栏我使用:

+(CGFloat)getTabBarHeight{ 

    UITabBarController *tabBarController = [UITabBarController new]; 
    CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height; 
    return tabBarHeight; 
} 

有没有像任何片段,所以我可以返回导航控制器工具栏上的价值?

回答

4

我不知道目标C - 但是在斯威夫特四分之三,你可以做

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

这需要你有嵌入的UINavigationController您的视图 - 控制。如果你没有这个,你可以这样做:

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

谢谢,完美答案bro – Mehul