[ios]从nib加载视图返回零帧视图-怎么办?

标签: ios Objective-C
发布时间: 2017/3/21 22:44:26
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个视图控制器,它创建另一个视图控制并将生成的视图添加到它的子视图。但问题是,得到与框架 (0,0,0,0) 创建视图。

如果我手动设置帧是好的但我不想手动设置帧,我想要 autoresizing。下面是代码︰

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 时,我的意见几、 视图正确连接、 文件所有者设置正确和一切看起来都很好。

解决方法 1:

当做像这样的视图控制器遏制 (顺便说一句,我希望你也有你 didMoveToParentViewController 也在那里,叫),我总是设置 frame ,如

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

诚然,我经常添加到容器中,不会占用整个屏幕,所以它是至关重要的在这种情况,我的子视图,但尽管如此,我不知道为什么你沉默,只是设置 frame

一旦你做到这一点,假设你正确设置你的自动调整大小面具,一切酌情自动将为你做出调整。

仅供参考,苹果设置 frame 当他们添加子视图在他们的示例代码中,太 (见清单 14-1)。

很明显,如果你使用自动布局,您将设置约束条件 (或使用 translatesAutoresizingMaskIntoConstraints ),但这个想法是相同的。

赞助商