我在編寫一個應用程序,它使用UITabBar
作爲導航的一部分。我還使用UIScrollView
來呈現比屏幕可以處理的更多信息。因此,我需要設置滾動視圖來考慮UITabBar
的高度,以便顯示所有信息。計算UITabBar的高度
有沒有辦法計算UITabBar
的height
?
我在編寫一個應用程序,它使用UITabBar
作爲導航的一部分。我還使用UIScrollView
來呈現比屏幕可以處理的更多信息。因此,我需要設置滾動視圖來考慮UITabBar
的高度,以便顯示所有信息。計算UITabBar的高度
有沒有辦法計算UITabBar
的height
?
是320×49
如果你想測試,開放的界面生成器,添加中的UITabBar一樣,進入的統治者,你會看到它
UITabBar is inherited from UIVIew這樣你就可以使用frame.size.height獲得高度
我正在尋找做一些類似的事情,在ViewController視圖的VISIBLE部分居中標籤。這個ViewController屬於一個UITabBarController。
下面是我用於中心我標籤的代碼:我用[[自視圖]界限]不[[自視圖]幀],因爲後者包括20像素頂欄作爲
UILabel *roomLabel = [[UILabel alloc] init];
CGRect frame = [[self view] bounds];
float tabBarHeight = [[[super tabBarController] tabBar] frame].size.height;
frame.size.height -= tabBarHeight;
[roomLabel setFrame:frame];
[[self view] addSubview:roomLabel];
[roomLabel release];
通知Y偏移(拋出垂直居中)。
希望這可以幫助別人!順便說一下:我使用iOS 4.3和XCode 4,TabBar高度的「硬代碼」值仍然是49!
我知道這並不理想,但我真的不想在任何地方都有一個奇數。我所做的就是創建一個一次性的UITabBarController,並從那裏獲得高度。
我這樣做也是因爲[UITabBar initWithFrame:]按照需要工作,但是做[bar setFrame:]沒有。我需要創作時的框架纔是正確的。
UITabBarController *dtbc = [[[UITabBarController alloc] init] autorelease];
CGRect tabRect = [[[self navigationController] view] frame];
tabRect.origin.y = tabRect.size.height - [[dtbc tabBar] frame].size.height;
tabRect.size.height = [[dtbc tabBar] frame].size.height;
tabBar_ = [[UITabBar alloc] initWithFrame:tabRect];
我喜歡的是,它會正確地將標籤欄放在父級的底部,而不管父母的大小。
如果視圖控制器的祖先是選項卡欄控制器,則可以從該選項卡欄中檢索高度。
CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height;
這應該在大多數情況下對UIViewController中的任何實例:
bottomLayoutGuide.length
斯威夫特3+
let tabBarHeight = tabBarController?.tabBar.frame.size.height
print(tabBarHeight ?? "not defined")
應該打印49.0(類型CGFloat的)
在斯威夫特:
let height = self.tabBarController?.tabBar.frame.height ?? 49.0
依靠標籤欄的實際高度,並使用幻數作爲後備。
是否保證始終保持這種狀態?我寧願使用API來獲取該值,而不願意使用IB並在應用程序中插入幻數。 – 2010-06-24 03:16:25
UITabBar繼承自UIView,因此您可以嘗試使用UIView的frame.size.height – vodkhang 2010-06-24 03:18:25
當我從工作中回來時,會給我一個鏡頭。你知道我是否可以在不創建對象的實例的情況下獲得該信息?此外,創建一個虛擬實例或將應用程序委託中的正在使用的UITabBar傳遞給我正在使用的視圖以便它具有更準確的值會更好嗎? – 2010-06-24 03:22:47