iOS ChildViewController 有不同的视图
Posted
技术标签:
【中文标题】iOS ChildViewController 有不同的视图【英文标题】:iOS ChildViewController has different view 【发布时间】: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 检查器中? 【参考方案1】:-
检查 CV1 中的滚动视图是否没有对
topLayoutGuide
的约束
尝试覆盖 CV1 的 automaticallyAdjustsScrollViewInsets
并返回 NO
【讨论】:
以上是关于iOS ChildViewController 有不同的视图的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap/iOS - 如何推送 childviewcontroller?
iOS7 呈现类似于 MFMailComposeViewController for iPad 的 childViewController
UIPageViewController uiNavigationController childViewController 在 ios 中的滚动问题