我有一个视图控制器,它正在创建另一个视图来控制并将结果视图添加到其子视图中。但问题是视图是用frame(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中我有几个视图,View已正确连接,文件所有者设置正确,一切看起来都不错。
答案 0 :(得分:1)
在进行这样的视图控制器控制时(顺便说一句,我希望你也可以在那里进行didMoveToParentViewController
调用),我总是设置frame
,例如
gridVC.view.frame = self.view.bounds;
不可否认,我经常将我的孩子视图添加到一个不占用整个屏幕的容器中,所以在这种情况下它是至关重要的,但是,我仍然不确定为什么你只是沉默寡言frame
。
一旦你这样做,假设你正确设置自动调整大小的掩码,一切都将根据需要自动调整大小。
仅供参考,Apple在他们的示例代码中添加子视图时设置frame
(参见Listing 14-1)。
显然,如果你使用自动布局,你将设置约束(或使用translatesAutoresizingMaskIntoConstraints
),但想法是一样的。