Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何准备UIViewController';要添加到UIStackView的视图?_Ios_Uiviewcontroller_Autolayout_Uikit_Uistackview - Fatal编程技术网

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
  • 使用SnapKit生成自动布局约束以定位视图
  • 我想转换到
    UIStackView
    ,因为它似乎是这个视图的一个很好的支持系统,因为我所需要做的就是堆叠它的子视图。在尝试添加具有自身内部自动布局约束的子视图时,我看到许多冲突约束错误和意外的图幅

    问题

    通过将4-6个视图控制器的视图嵌入到一个视图控制器的视图中,我是否设置了自己的失败

    另外,如何使用
    UIStackView
    ,为添加的视图属性(如最小高度或内容大小)提供帮助,而不看到许多破坏性约束?(所以它们可以堆叠,但其中一个是400高,另一个是200高)

    答案 使用
    UIContainerViews
    结合
    UIStackViews
    UIScrollViews
    ,您完全可以做到这一点,这是一个复杂的设置,因此这里有一个入门项目可以让您开始:

    以下是该项目的外观:

    您希望容器具有不同的大小。为此,只需使用Autolayout向容器添加高度约束即可。如果要更改滚动的高度。然后需要更改
    UIStackView
    的高度约束

    简要说明 创建此设置时,必须确保
    UIStackView
    分发设置保持填充状态。这样就可以在UIContainerViews上设置高度约束

    UIScrollView
    中设置任何内容时,必须确保对象固定在滚动视图的边缘,并且具有定义的宽度和高度,否则滚动视图将抛出收缩错误。我认为它就像scrollview试图在你的内容视图的各个方面按下按钮一样,如果任何一方给出,scrollview将无法正确地显示它


    希望这能有所帮助。

    您是打算在代码中安排大部分内容,还是在interface builder中安排大部分内容?另外,您是否打算为您的ChildViewController使用UIContainers?