【发布时间】:2017-10-02 08:03:32
【问题描述】:
现在我尝试在 StackView 中的视图之间插入一定的边距。但不知何故,我当然没有设置一些限制。所以,我假设一个系统会产生这些意想不到的冲突。但我没有信心,对吗?
此冲突的详细信息是second one.top = first one.bottom。
但我从来没有创建过这个约束,但我确实创建了second one.top = first one.bottom + 10。
为什么要创建前一个约束?
这是 StackView 的本质吗?
谢谢。
【问题讨论】:
-
是的。堆栈视图将为您创建一些约束。您再次添加了一个约束。您不需要为堆栈视图中的视图添加约束。堆栈视图会处理它。如果您需要更改这些内容,请通过属性检查器进行更改。但不要在上面添加更多约束。
-
谢谢。在这种情况下,stackView 通过属性
Spacing为每个视图的空间添加了一定的约束。那么,如果我想为子视图设置一些不同的边距,即在 viewA 和 viewB 之间设置 10 的距离,在 viewB 和 viewC 之间设置另一个距离 20,这是不可能的吗?对我来说,使用 stackview 似乎是不可能的。 -
您可以使用堆栈视图间距属性来做到这一点。它将在视图之间提供相等的间距。如果您想要可变间距,请点击此链接:stackoverflow.com/questions/32999159/…
-
要在视图之间创建可变间距,您应该了解堆栈视图的大多数导入属性,即 UIStackViewDistribution 和 UIStackViewAlignment。如果您不了解它们,请阅读苹果文档:developer.apple.com/reference/uikit/uistackview
标签: ios autolayout