2016-12-05 134 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