更改UINavigationBar和UITabBar的大小后的可视区域大小

问题描述:

我目前正在开发我的第一个应用程序,并且更改了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; 

谢谢。

基本上通过缩小你的tabbar和navbar,你需要你的视图来扩展。我假设你正在使用一个tabbar进行主导航。

找出合适的大小和调整您的视角是这样的:

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

的慧眼识英雄的类别,如果你的目标是应用程序商店,你将是明智的审查修改这些元素的准则。我并不确定所有的具体问题,但我认为苹果公司会对此做出改变,以便明确显示核心导航元素。

此外,这种方法适用于当前的屏幕尺寸,但如果传言是真实的并且下一个手机有更大的屏幕,则可能无法正常工作。

很好。

+0

伟大的答案和谢谢你的抬头。 – 2012-08-15 00:57:51

您不应该以这种方式混淆视图高度。视图被推送到导航栏上。它们的尺寸应该设置为适合320 x 480屏幕减号,导航栏和标题栏。你应该将AutoResize宽度/高度设置为灵活,左/ rigth/top/bottom设置为不灵活(只留下它们)。

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

iOS喜欢一切为了弹簧加载和固定到另一个。然后,当你旋转的东西,它都会坚持和正确移动。他们为你做所有的工作。所以,最好是拥抱他们处理事物的时髦方式。界面生成器gui可以提供帮助。它甚至可以让你测试旋转,如果你想。您也可以设置选项卡/导航/标题栏。或者如果你了解它,那么你也可以手动执行此操作。

+0

谢谢你的抬头。 – 2012-08-15 01:04:44