2012-08-14 133 views
0

我目前正在開發我的第一個應用程序,並且更改了UINavigationBar和UITabBar的大小,現在我在普通查看區域中有了額外的空間黑色空間(等ViewController,DetailViewController)。如何更改觀看區域以適應這種新尺寸?更改UINavigationBar和UITabBar的大小後的可視區域大小

我已經粘貼了我目前如何爲UINavigationBar和UITabBar設置新尺寸。

/* Get the screenarea of the device */ 
CGRect screenArea = [[UIScreen mainScreen] applicationFrame]; 

/* Define the size of the navigation bar */ 
CGRect viewHeaderbBarFrame = navigationBar.frame; 
viewHeaderbBarFrame.origin.y = screenArea.origin.y; 
viewHeaderbBarFrame.origin.x = screenArea.origin.x; 
viewHeaderbBarFrame.size.height = 44; 
viewHeaderbBarFrame.size.width = screenArea.size.width; 
navigationBar.frame = viewHeaderbBarFrame; 

/* Define the size of the footer bar */ 
CGRect viewTabBarFrame = tabBar.frame; 
viewTabBarFrame.origin.y = screenArea.size.height - 26; 
viewTabBarFrame.origin.x = screenArea.origin.x; 
viewTabBarFrame.size.height = 46; 
viewTabBarFrame.size.width = screenArea.size.width; 
tabBar.frame = viewTabBarFrame; 

謝謝。

回答

1

基本上通過縮小你的tabbar和navbar,你需要你的視圖來擴展。我假設你正在使用一個tabbar進行主導航。

找出合適的大小和調整您的視角是這樣的:

[[self.tabBarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(newX,newY,newWidth,newHeight)]; 

的慧眼識英雄的類別,如果你的目標是應用程序商店,你將是明智的審查修改這些元素的準則。我並不確定所有的具體問題,但我認爲蘋果公司會對此做出改變,以便明確顯示核心導航元素。

此外,這種方法適用於當前的屏幕尺寸,但如果傳言是真實的並且下一個手機有更大的屏幕,則可能無法正常工作。

很好。

+0

偉大的答案和謝謝你的擡頭。 – 2012-08-15 00:57:51

1

您不應該以這種方式混淆視圖高度。視圖被推送到導航欄上。它們的尺寸應該設置爲適合320 x 480屏幕減號,導航欄和標題欄。你應該將AutoResize寬度/高度設置爲靈活,左/ rigth/top/bottom設置爲不靈活(只留下它們)。

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

iOS喜歡一切爲了彈簧加載和固定到另一個。然後,當你旋轉的東西,它都會堅持和正確移動。他們爲你做所有的工作。所以,最好是擁抱他們處理事物的時髦方式。界面生成器gui可以提供幫助。它甚至可以讓你測試旋轉,如果你想。您也可以設置選項卡/導航/標題欄。或者如果你瞭解它,那麼你也可以手動執行此操作。

+0

謝謝你的擡頭。 – 2012-08-15 01:04:44