2012-04-19 48 views
4

我的應用程序有一個tabBarController作爲主控制器,我需要從任何視圖控制器獲取tabBar的高度,以計算其餘元素的正確位置。如何以編程方式獲得它?謝謝。xcode get UITabBar height

回答

12

我強烈建議設置您的視圖層次結構,使得外部視圖通過容器視圖進行自動調整,然後更具體的內部視圖可以檢查外部佈局視圖的邊界並在適當的時候適當放置。

但是,如果你的要求使得該是不可能的(或極其複雜的,你真的需要指定點應有盡有),你可以得到標籤欄的高度與UIViewControllertabBarController屬性:

// from inside the view controller 
CGSize tabBarSize = [[[self tabBarController] tabBar] bounds].size; 
+1

我認爲知道tabBar高度的一種情況是很有幫助的,即使視圖按照您的建議進行了自動調整,也必須調整視圖以考慮鍵盤的外觀。在這種情況下,鍵盤將覆蓋tabBar以及部分受影響的視圖,因此視圖必須根據鍵盤高度和TabBar高度之間的差異進行自我調整。我想到的情況是tabBar是rootViewController,活動視圖是其後代。 – 2013-03-30 20:21:12

+1

我有這個完全相同的用例。當鍵盤顯示時使用tabBar時,是否有更好的方法來調整元素的插入/高度/原點? – 2013-10-13 00:47:17

1

對於斯威夫特使用本:

let tabBarHeight = tabBarController?.tabBar.bounds.size.height ?? 0 

它返回的TabBar的高度時tabBarController不爲零,否則爲0