首页 > 解决方案 > iOS 自动调整大小的容器视图

问题描述

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

屏幕模板(Master/Root View)由3个View组成,即:

在此处输入图像描述

现在,我当然可以使用传统的 UINavigationController 和 UITabBar,但我需要更好地控制这些视图,特别是在大小方面(它们的最小高度大于 NavBar 和 TabBar 的高度)。

我还需要根据 Traits 和 Class Size 调整这些视图的大小,以保持填满整个屏幕。

我正在尝试使用容器视图来这样做,但是尽管在自动布局中尝试了一组不同的约束,但我无法让它们自动调整大小。将 3 个视图放在一个堆栈视图中也不起作用。

最终,我希望能够在将加载到View B中的各种控制器视图上单独工作,使用它们自己的故事板,在 B 中以编程方式调用它们并自动调整所有内容的大小。

在此处输入图像描述

感谢大家的友好和宝贵意见!克里斯

标签: iosuiviewcontrollerstoryboardios-autolayoutuicontainerview

解决方案


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

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

或者

  • 设置子视图的框架和.autoResizingMask

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


推荐阅读