Ios 如何准备UIViewController';要添加到UIStackView的视图?
这就是我想做的 我有一个视图控制器,它需要根据某些数据的存在动态显示不同的子视图 这是一个简单的模型每个彩色块代表一个唯一的子视图 有时绿色块需要在顶部,有时绿色块根本不会显示,有时浅蓝色块会有所不同,等等 每个子视图都有交互元素,因此我一直在创建和添加它们,如下所示:Ios 如何准备UIViewController';要添加到UIStackView的视图?,ios,uiviewcontroller,autolayout,uikit,uistackview,Ios,Uiviewcontroller,Autolayout,Uikit,Uistackview,这就是我想做的 我有一个视图控制器,它需要根据某些数据的存在动态显示不同的子视图 这是一个简单的模型每个彩色块代表一个唯一的子视图 有时绿色块需要在顶部,有时绿色块根本不会显示,有时浅蓝色块会有所不同,等等 每个子视图都有交互元素,因此我一直在创建和添加它们,如下所示: 定义新的视图控制器 定义其观点 调用addChildViewController和didMoveToParentViewController 在myNewViewController.view 使用SnapKit生成自动布局约
addChildViewController
和didMoveToParentViewController
myNewViewController.view
UIStackView
,因为它似乎是这个视图的一个很好的支持系统,因为我所需要做的就是堆叠它的子视图。在尝试添加具有自身内部自动布局约束的子视图时,我看到许多冲突约束错误和意外的图幅
问题
通过将4-6个视图控制器的视图嵌入到一个视图控制器的视图中,我是否设置了自己的失败
另外,如何使用UIStackView
,为添加的视图属性(如最小高度或内容大小)提供帮助,而不看到许多破坏性约束?(所以它们可以堆叠,但其中一个是400高,另一个是200高)答案
使用UIContainerViews
结合UIStackViews
和UIScrollViews
,您完全可以做到这一点,这是一个复杂的设置,因此这里有一个入门项目可以让您开始:
以下是该项目的外观:
您希望容器具有不同的大小。为此,只需使用Autolayout向容器添加高度约束即可。如果要更改滚动的高度。然后需要更改UIStackView
的高度约束
简要说明
创建此设置时,必须确保UIStackView
分发设置保持填充状态。这样就可以在UIContainerViews上设置高度约束
在UIScrollView
中设置任何内容时,必须确保对象固定在滚动视图的边缘,并且具有定义的宽度和高度,否则滚动视图将抛出收缩错误。我认为它就像scrollview试图在你的内容视图的各个方面按下按钮一样,如果任何一方给出,scrollview将无法正确地显示它
希望这能有所帮助。您是打算在代码中安排大部分内容,还是在interface builder中安排大部分内容?另外,您是否打算为您的ChildViewController使用UIContainers?