1

我有一个视图控制器,它正在创建另一个视图控制并将结果视图添加到它的子视图中。但问题是视图是使用框架 (0, 0, 0, 0) 创建的。

如果我手动设置框架是可以的,但我不想手动设置框架,我想要自动调整大小。这是代码:

GridViewController *gridVC = [[GridViewController alloc] initWithNibName:@"GridView" bundle:nil];
[self addChildViewController:gridVC];
[self.view addSubview:gridVC.view];

self.view有正常帧,并且gridVc.view有 (0,0,0,0) 帧;

在 xib 我有几个视图,视图连接正确,文件所有者设置正确,一切看起来都很好。

4

1 回答 1

1

当做这样的视图控制器包含时(顺便说一句,我希望你也有你的didMoveToParentViewController电话),我总是设置frame,例如

gridVC.view.frame = self.view.bounds;

诚然,我经常将我的子视图添加到一个不占用整个屏幕的容器中,因此在这种情况下它很关键,但是,我仍然不确定你为什么不愿只设置frame.

完成此操作后,假设您正确设置了自动调整大小的蒙版,所有内容都会根据需要自动调整大小。

仅供参考,Appleframe在示例代码中也设置了添加子视图的时间(参见示例14-1)。

显然,如果您使用自动布局,您将设置约束(或使用translatesAutoresizingMaskIntoConstraints),但想法是相同的。

于 2013-04-24T18:16:25.507 回答