强制子视图填充父级

cen*_*ree 3 cocoa-touch objective-c

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

viewController1.view.frame = CGRectMake(0, 0, 320, 460);
Run Code Online (Sandbox Code Playgroud)

我将子视图染成黄色,因此更容易看到.

在此输入图像描述

Luk*_*cka 8

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

示例代码(- (void)viewDidLoad例如,您可以执行此操作):

UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:view];
Run Code Online (Sandbox Code Playgroud)


CRD*_*ave 5

如果您想通过设置框架来做到这一点,请执行以下操作:

[childView setFrame:childView.superview.bounds];
Run Code Online (Sandbox Code Playgroud)