在容器视图中切换不同高度的ViewControllers

时间:2017-06-07 17:17:51

标签: ios swift autolayout uicontainerview childviewcontroller

我有一个要求,我必须根据ViewController中的选定选项加载不同的UI。这是表示

enter image description here

选项1和选项2是单选按钮,用户一次只能选择一个选项。根据选择,下面的区域必须使用不同的文本字段进行更新。

因此,我在作为容器的选项下面创建了一个视图。为Option1和Option2创建了两个带有textFields的ViewController,它们将子视图控制器添加到containerView。下面是mainViewController的层次结构

- >图

------>滚动型

------------>内容查看

------------------>标签

------------------>标签

------------------>选项1

------------------>选项2

------------------> ContainerView

根据选定的选项,我将各个viewController作为childViewController加载到containerView。

需要注意的是,option1和option2的字段数不同,应根据所选选项中的子视图数调整containerView的高度,以便整个屏幕可滚动。

我无法根据其中的字段数(子视图)调整option1和option2 viewControllers的大小。

如何根据字段数量调整childViewControllers的高度并设置containerViews的高度?

或者,实现这种设计的更好方法是什么?

1 个答案:

答案 0 :(得分:0)

  

如何根据字段数

调整childViewControllers的高度

这取决于子视图控制器中的内容。

  

设置containerViews的高度?

将子视图添加到容器后。调用containerView.sizeToFit(),它将调整其大小以适合子视图。

注意:确保容器视图没有限制其高度的限制,否则将无法调整。

https://developer.apple.com/documentation/uikit/uiview/1622630-sizetofit