2009-11-23 66 views
1

我以編程方式創建視圖控制器,它是UITabBarDelegate幷包含UITabBar如何以編程方式定位TabBar

UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 200, 320, 49)]; 
[self.view addSubview:tabBar]; 

我真的不想硬編碼的情況下,屏幕的分辨率變化框架值或我使用的觀點在不同的環境有不同的高度,例如。

我隱約知道我可以創建沒有這些值的標籤欄,探測窗口和標籤欄的高度和寬度來計算所需的值,但我努力實現這一點。我想要實現的是標準寬度和高度的標籤欄,它正確地位於封閉視圖的底部。

回答

0

也許是這樣的:

UITabBar *tabBar = [[UITabBar alloc] init]; //init with default width and height 
tabBar.frame = CGRectMake(0, 
          self.view.frame.size.height - tabBar.frame.size.height, 
          self.view.frame.size.width, 
          tabBar.frame.size.height)]; //place it at the bottom of the view 
[self.view addSubview:tabBar]; 
[tabBar release]; 

編輯:

我已經意識到泰德是一個新實例UITabBar的大小是零。可能是你最好的選擇是使用一個的UITabBarController,因爲它已經相應大小的UITabBar:

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 
[self.view addSubview: tabBarController.view]; 
+0

這是非常相似,我一直在嘗試之前,但由於某些原因從self.view.frame返回的值.size.height或width都是(null)? – andybee 2009-11-23 20:10:37

+0

這很奇怪: - ?嘗試self.view.bounds.size.width和高度 – luvieere 2009-11-23 21:04:13

+0

NSLog(@「%@」,tabBar);返回'>',但tabBar.frame或tabBar.bounds返回(空)。 self.view.frame或self.view.bounds也一樣?我認爲這是出乎意料的行爲,所以我應該把這個問題推出一個新的問題? – andybee 2009-11-24 08:03:18

相關問題