【发布时间】:2015-07-27 21:19:43
【问题描述】:
我正在尝试将容器视图添加到我的项目中,但遇到自动布局问题。在这个容器视图中,我将其子类化为某种类型的 UIViewController,我将其命名为 ContainerViewController。我试图在堆栈溢出时找到它,所以如果它已经发布,我深表歉意。无论如何,从这个视图控制器,我试图实现类似于this 的效果,其中标签基本上附加到 ContainerViewController(红色视图)视图的底部,并与此水平居中。但是,每当我尝试这样做(我正在以编程方式执行此操作)时,一切都会变得混乱。我将容器视图的边缘附加到 UILabel(全零),并将顶部附加到矩形。我尝试在 -prepareforsegue 方法中设置 childviewcontroller,我尝试更改缩放因子,我尝试将容器视图设置为固定大小,我尝试将授权因子设置为灵活,我尝试了几乎所有我能想到的而且我并不接近解决方案。当我设置视图的背景颜色时,它完全可以正常工作:背景颜色变成红色,就像上面的例子一样,在它应该有的空间量中。
问题:我在 -viewdidload 方法中将 UILabel 添加到 ContainerViewController 的视图中,发现 ContainerViewController 的视图与我正在使用的屏幕尺寸完全相同,并且 UILabel 附在 view 的底部,但我只能看到容器屏幕的视图范围。所以 ContainerViewController 的视图不尊重容器视图的边界。如果我需要更好地解释这一点,或者您有任何问题,请告诉我。任何帮助将不胜感激,谢谢!
TLDR:正在发生的事情是容器视图具有自动布局的正确约束,并且仅显示在其边界内发生的事情。但是,containerView 中的 UIViewController 有一个不尊重容器视图边界的视图;就好像 uiviewcontroller 与屏幕的主视图具有相同的视图大小。
【问题讨论】:
标签: ios xcode swift autolayout