【发布时间】:2016-07-18 11:35:30
【问题描述】:
我有一个容器视图控制器和两个子视图控制器(CV1 和 CV2)。 CV1 有一个滚动视图,CV2 有 UITableView,我可以成功地在子视图控制器之间使用,但似乎 CV1 在顶部添加了 ~64 填充,但不是为 CV2。并且导航栏对两者都是隐藏的。 我正在使用此代码:
-(void)displayContentController:(UIViewController *)content withFrame:(CGRect)frame {
[self addChildViewController:content];
content.view.frame = frame;
[self.view addSubview:content.view];
[content didMoveToParentViewController:self];
}
我已经仔细检查了我传递的 frame 值是否正确 CV1 仍在添加额外的空间
【问题讨论】:
-
你能解释一下吗
-
这是一种扭曲的行为,我从未遇到过这种情况,因此提出了问题。似乎它为 CV1view 框架添加了一些额外的点(在检查框架时它返回正确的框架(0,54,320,514))但是视图没有定位在它应该在的位置(即视图位于(0, 118, 320,514))。
-
你用过Xcode的视图调试功能吗?它可以告诉您正在使用什么逻辑(约束)来计算视图位置和大小。
-
感谢@Phillip Mills,Xcode 的视图调试提供了帮助。我在视图上添加了一个明确的高度约束。感谢所有的答案。
-
只是一个后续问题,如果添加了约束,那么为什么它没有出现在 Xcode 检查器中?
标签: ios objective-c uiviewcontroller uiscrollview