【问题标题】:When should we use UIStackView?我们什么时候应该使用 UIStackView?
【发布时间】:2017-11-10 11:32:22
【问题描述】:

我设计 iOS 应用程序已有 2 年了。我使用UIScrollViewUICollectionView 和更多本机视图设计了 8-10 个应用程序。但我从未使用过UIStackView。我浏览了UIStackView 的许多文档,但我无法确定可以使用UIStackView 的确切情况。

任何人都可以指导我吗?

提前谢谢你。

【问题讨论】:

  • 没有UIStackViewController,你是说UIStackView吗?
  • UIStackView 如果您想显示一些水平或垂直对齐的视图,这很有用。
  • 对不起!我已将它从 UIStackViewController 更改为 UIStackView。请立即检查。
  • 你能用例子简单解释一下吗? @macmoonshine

标签: ios uistackview


【解决方案1】:
  1. 当您需要多次重复相同的视图(如 Sing up 视图)时,UIStackView 非常有用。我们使用许多文本字段并在每个文本字段之间手动设置约束。但是,如果您将所有文本字段都放在堆栈视图中,那么您只需要设置堆栈视图所需的约束而不是文本字段。 stackview 中的文本字段将在没有自动布局的情况下自动排列。

  2. 有时我们需要隐藏视图并希望移除其占用的空间,因此建议使用 stackview,因为如果您隐藏驻留在 stackview 中的任何视图也会自动移除其占用的空间。

【讨论】:

  • 这并不意味着您只能在堆栈视图中加入相同的视图。即使您想要一行/列上的文本字段、标签和按钮,您也可以使用堆栈视图。 堆栈视图的最佳用途是,如果您想设置多个垂直或水平排列的控件,您只需将它们全部添加到堆栈视图中即可。 stackview 将处理它的对齐,您只需为 stackView 提供框架约束。
【解决方案2】:

我相信你的意思是 UIStackView。您使用 UIStackView 将 UI 元素组合在一起以简化设置约束。换句话说,一旦您将对象添加到堆栈视图,您就可以约束堆栈视图并在其上设置属性,而不是在每个单独的元素上。这导致更少的约束。

在此示例中,我已将标签和文本字段添加到堆栈视图。然后我在堆栈视图中添加了约束,并将 Attributes Inspector 中的间距设置为 20。

如果我必须限制标签和文本字段,我会有更多的限制。

【讨论】:

  • 我们可以给两个对象之间的动态间距吗?即它应该随着设备宽度的变化而变化。
  • 是的。您可以约束堆栈视图,就像约束其他 UI 元素一样。只是使用堆栈视图,您将设置更少的约束,因此更易于管理。
  • 在上图中,您可以在 Attribute Inspector 中看到 Distribution 属性。您可以根据需要使用此设置动态更改间距。
【解决方案3】:

UIStackView 帮助您设置自动布局。没必要!

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 2011-07-04
    • 2017-09-13
    • 2021-12-29
    • 2011-07-17
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多