iOS自动调整大小的容器视图

时间:2018-11-10 16:45:29

标签: ios uiviewcontroller storyboard ios-autolayout uicontainerview

我正在构建一个具有多个屏幕的iOS应用,但我想避免重复代码以及一个大型情节提要。理想情况下,我希望在需要时基于选定的故事板在内容视图中加载各种View Controller。

屏幕模板(主/根视图)应由3个视图组成,即:

  • 视图A 作为导航视图,
  • View B ,应根据用户操作在其中加载各种View Controller,
  • 视图C ,非常类似于标签栏或可以显示一些内容的第三视图
    环境信息。

enter image description here

现在,我当然可以使用传统的UINavigationController和UITabBar,但我需要对这些视图进行更大的控制,尤其是在尺寸方面(它们的最小高度大于NavBar和TabBar的高度)。

我还需要根据“特征”和“班级大小”调整这些视图的大小,以不断填充整个屏幕。

我正在尝试使用容器视图执行此操作,但是尽管在自动布局中尝试了一组不同的约束,但我无法让它们自动调整大小。将3个视图放入stackview也不行。

最终,我希望能够分别使用自己的情节提要,在B中以编程方式调用它们并自动调整所有大小,从而对将在 View B 中加载的各种Controller View进行单独处理。 / p>

enter image description here

感谢大家的宝贵帮助! 克里斯

1 个答案:

答案 0 :(得分:1)

使用addChildViewController(childVC) / addChild(childVC) Swift 4.1 / 4.2 ),然后使用myContainerView.addSubview(childVC.view)时,您要么需要

  • 为添加的子视图添加约束

  • 设置子视图的框架,然后.autoResizingMask

之后,您新添加的子视图将正确布局并调整其大小。