gpt4 book ai didi

ios - 如何准备 UIViewController 的 View 以添加到 UIStackView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:25:38 25 4
gpt4 key购买 nike

这就是我想要做的...

我有一个 View Controller 需要根据某些数据的存在动态显示不同的 subview 。

这是一个简单的模型。 每个彩色 block 代表一个独特的 subview

Simple mockup

有时绿色 block 需要在顶部,有时绿色 block 根本不会显示,有时浅蓝色 block 会有所不同,等等。

每个 subview 都有交互元素,所以我一直在创建和添加它们:

  1. 定义一个新的 View Controller
  2. 定义其 View
  3. 调用 addChildViewControllerdidMoveToParentViewController
  4. myNewViewController.view 上调用 addSubview
  5. 使用 SnapKit 进行自动布局约束以定位 View

我想转换到 UIStackView 因为它似乎是这个 View 的一个很好的支持系统,因为我需要做的就是堆叠它的 subview 。在尝试添加具有自己的内部自动布局约束的 subview 时,我看到了许多冲突约束错误和意外的 View 框架。

问题

我是否将 4-6 个 View Controller 的 View 嵌入到一个 View Controller 的 View 中,从而让自己失败?

此外,如何在不破坏 UIStackView 约束的情况下为添加的 View 提供最小高度或内容大小等属性? (所以他们可以堆叠,但是其中一个是 400 高,另一个是 200 高)

最佳答案

回答

您完全可以使用 UIContainerViews 结合 UIStackViewsUIScrollViews 来做到这一点,这是一个复杂的设置,所以这里有一个入门项目来帮助您入门:

https://github.com/Rnorback/ScrollingStackView

这是该项目的样子:

enter image description here

您希望容器具有不同的大小。为此,只需使用自动布局向容器添加高度限制。如果你想改变滚动的高度。然后您需要更改 UIStackView 的高度约束。

简要说明

创建此设置时,您必须确保 UIStackView distribution 设置保持填充状态。这样您就可以在 UIContainerView 上设置高度限制。

UIScrollView 中设置任何内容时,您必须确保该对象固定在 ScrollView 的边缘并且具有定义的宽度和高度,否则 ScrollView 将抛出一个约束错误.我认为它就像 ScrollView 试图压入内容 View 的所有侧面,如果任何一侧给出, ScrollView 将无法正确显示它。

希望这对您有所帮助。

关于ios - 如何准备 UIViewController 的 View 以添加到 UIStackView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32912132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com