我有一个 View Controller ,它正在创建另一个 View 控制并将结果 View 添加到它的 subview 。但问题是 View 是使用框架 (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 , View 连接正确,文件所有者设置正确,一切看起来都很好。
最佳答案
当像这样进行 View Controller 包含时(顺便说一句,我希望你也有你的 didMoveToParentViewController
调用),我总是设置 frame
,例如
gridVC.view.frame = self.view.bounds;
不可否认,我经常将我的 subview 添加到一个不占据整个屏幕的容器中,所以在这种情况下这很重要,但是,我仍然不确定为什么你不愿意设置框架
。
一旦你这样做了,假设你正确地设置了你的自动调整大小蒙版,所有的东西都会自动为你适本地调整大小。
仅供引用,当他们在示例代码中添加 child 的 View 时,Apple 也会设置 frame
(参见 Listing 14-1)。
显然,如果您使用自动布局,您将设置约束(或使用 translatesAutoresizingMaskIntoConstraints
),但思路是一样的。
关于ios - 从 NIB 加载 View 返回零帧 View - 怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198576/