更改UINavigationBar和UITabBar的大小后更改查看区域的大小

时间:2012-08-14 03:32:32

标签: objective-c ios ios5 uinavigationbar uitabbar

我正在开发我的第一个应用程序并且我已经改变了UINavigationBar和UITabBar的大小,现在我在一般查看区域(等ViewController,DetailViewController)中有额外的空间黑色空间。如何更改查看区域以适应这个新尺寸?

我已经粘贴了我当前为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;

感谢。

2 个答案:

答案 0 :(得分:1)

基本上通过缩小标签栏和导航栏,您需要扩展视图。我假设你使用tabbar进行主导航。

找出合适的尺寸并调整你的视图:

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

在买家提防类别中,如果您的目标是应用商店,那么您最好查看有关修改这些元素的指南。我不确定所有具体要点,但我认为苹果皱眉般的做出改变,以明确显示核心导航元素。

此外,这种方法适用于当前的屏幕尺寸,但如果传言属实并且下一部手机屏幕更大,则可能无效。

好。

答案 1 :(得分:1)

你永远不应该以这种方式弄乱视图高度。视图被推送到导航栏。它们的大小应设置为适合320 x 480屏幕减去制表符,导航栏和标题栏。你应该将AutoResize宽度/高度设置为灵活,将左/ rigth / top / bottom设置为不灵活(只需将它们留出)。

  

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

iOS喜欢将弹簧加载并固定在一起的所有东西。然后当你旋转东西时,它们都会粘住并正确移动。他们为您完成所有工作。因此,最好采用他们时髦的处理方式。界面构建器gui可以提供帮助。它甚至可以让你测试旋转,如果你想。您也可以设置选项卡/导航/标题栏的选项。或者,如果您了解它,那么您也可以手动执行此操作。