6

我在每个标签栏的视图控制器中放置了一些子视图。现在我用像素数来调整它的大小,但它只适用于 iPhone 4 和 4s 而不是 iPhone 5,因为屏幕尺寸更长。我可以检查设备,然后按这种方式调整大小,但我觉得必须有一种更简单的方法来做到这一点。

viewController1.view.frame = CGRectMake(0, 0, 320, 460);

我将子视图着色为黄色,以便更容易看到。

在此处输入图像描述

4

3 回答 3

10
  1. 您不应该更改标签栏的内容视图控制器视图的框架。UITabBar自己负责正确调整子视图控制器框架的大小。
  2. 如果您想将子视图添加到内容视图控制器(某个选项卡下的控制器)并使该视图始终使用控制器主视图(self.view)自动调整大小,您可以使用superviews 框架和自动调整大小的组合。

示例代码(例如,您可以这样做- (void)viewDidLoad):

UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:view];
于 2013-06-20T14:21:56.350 回答
4

如果你想通过设置框架来做到这一点而不是这样做:

[childView setFrame:childView.superview.bounds];
于 2013-06-20T14:20:05.613 回答
0

视图控制器中的主视图应该已经是屏幕上可用空间的大小。通常,如果您希望视图与其父视图大小相同,则可以使用view.frame = view.superview.frame,尽管我怀疑调用视图控制器的视图是一个好主意。

于 2013-06-20T14:16:29.590 回答