0

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

谢谢。

4

2 回答 2

1

您永远不必以这种方式弄乱视图高度。视图被推送到导航栏。它们的大小应设置为适合 320 x 480 的屏幕减去标签、导航和标题栏。您应该将 AutoResize 宽度/高度设置为灵活,将左侧/右侧/顶部/底部设置为不灵活(只需将它们排除在外)。

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

iOS 喜欢所有东西都被弹簧加载并相互固定。然后,当您旋转物体时,它会全部粘住并正确移动。他们为您完成所有工作。所以,最好接受他们处理事情的时髦方式。界面生成器 gui 可以提供帮助。如果需要,它甚至可以让您测试旋转。您也可以设置选项卡/导航/标题栏的选项。或者,如果您理解它,那么您也可以手动执行此操作。

于 2012-08-14T04:28:11.090 回答
1

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

找出合适的尺寸并像这样调整您的视图:

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

在买家当心类别中,如果您的目标是应用商店,您最好查看修改这些元素的指南。我不确定所有的具体点,但我认为苹果皱着眉头对清晰显示的核心导航元素进行这样的更改。

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

好起来。

于 2012-08-14T03:47:35.027 回答