2011-06-07 59 views
0

我正在創建一個UIViewController(沒有筆尖)的自定義子類,我正在推入UINavigationController堆棧。在我的UIViewController子類的初始化過程中(loadViewviewDidLoadinit?)我想在視圖的底部添加一個UITabBar子視圖。問題是找出Y座標。據我所知,視圖在loadViewviewDidLoadinit之後的某個位置被調整大小,所以我無法獲得調整後的高度以計算UITabBar的Y座標。UITabBar子視圖的Y座標

找出包含視圖的高度以便我可以將UITabBar錨定在底部的正確方法是什麼?

回答

1

你需要做的是將你的UITabBar設置到視圖的底部,然後告訴它留在那裏如果超視圖的邊界改變。

這不是太棘手。例如,在viewDidLoad分配/初始化的標籤欄爲正常,並將其定位如下:

tabBar.frame = CGRectMake(self.view.frame.size.height-tabBar.frame.size.height, 0, 
          tabBar.frame.size.height, tabBar.frame.size.height); 
[self.view addSubview:tabBar]; 

...這將棒添加到視圖的底部。

到目前爲止很好:你的問題是當超級視圖改變高度時,tabbar不會保持鎖定在底部。爲了解決這個問題,我們設置了一個自動調整掩碼:

tabBar.autoresizingMask = UIViewAutoresizingMaskTopMargin; 

......這將有效地將欄鎖定在超級視圖的底部。

+0

非常感謝。我用iPhone做了很多工作,但從來沒有用這些UIView完全掌握整個佈局。我仍然習慣於HTML佈局。我通過繼承UIView,添加UITabBar到layoutSubviews並找到另一個解決方案。仍然很好地知道自動調整面具。乾杯。 – chris 2011-06-08 10:32:24