2017-09-04 49 views
1

我想将UIPageViewController嵌入到Container视图中。该ContainerView具有如下布局:UIPageViewController在Contrainer视图

enter image description here

它包括的UIViewController保持容器视图和底部2层的按钮。

Container View和UIPageViewController之间的连接通过“embed segue”建立。

UIPageViewController管理3个UIViewControllers。每个UIViewController的代表应用程序的演练指南屏幕,并具有以下布局:

enter image description here

的问题:当我运行应用程序时,第一个演练屏幕看起来它应该是,这意味着所有的版面元素的显示正确:

enter image description here

然而,当我滚动到下一个演练屏幕只的UIImageView显示,向下推动其他两个标签,是在它下面,从框架:

enter image description here

我想知道Container View如何显示由UIPageViewController管理的UIViewControllers的所有元素?

+0

据我了解,你给了太多不相关的信息,解决了这个问题。只提供有关您要添加子类的视图的信息。同时显示您期望的内容和当前结果。您添加的第3和第4张图片似乎不属于同一页! – Honey

+0

第3张图片显示了我期望的内容,第4张图片显示了我实际得到的内容。在第四张图片上,只有UIImageView可见,其他两个标签被压低,不在名声中。 – Gideon

回答

0

我已经把教程屏幕上的内容垂直堆叠视图中,并给予较低的UIImageView内容压缩性优先

0

您不应该将imageView的底部约束设置为0。您应该将其限制在标题的顶部锚点。同样,您应该将标题的底部设置为说明顶部。并将说明底部设置到其超级查看的底部。

+0

不缝合工作。按照你的建议尝试,仍然给我同样的事情。难道可能必须做任何事情:在我的UIPageViewController中,我在lazy属性(数组)中创建漫游屏幕UIViewControllers,在属性本身中实例化它们,而不是viewDidLoad方法?意味着每个视图控制器都在后台实例化,然后它们甚至出现在屏幕上。 – Gideon

+0

有一点需要注意,当我旋转屏幕并旋转它时,所有的UIViewControllers都能正确显示。 – Gideon

+0

你应该在'viewDidLoad'中设置它们'init'方法为时尚早,并且视图尚未加载到屏幕上 – Honey

相关问题