【发布时间】:2018-06-21 13:37:18
【问题描述】:
我有 12 个按钮和两个 stackView,每个 6 个按钮都在一个堆栈中。 并非所有按钮都一直显示。
我在某些情况下使用,例如:
buttonx.isHidden = true
我想要的是每个按钮的顶部约束总是与它上面的东西相距 8 点,知道它上面的东西在任何情况下都可以是其他东西(它可以是上堆栈视图边框或另一个按钮的底部)。
因此,此时显示哪种按钮组合(“.ishidden = false”)并不重要,始终按“8”点排列。
第一个按钮距离堆栈顶部边框 8 处,第二个按钮距离其上方按钮底部 8 处,依此类推...
2-如果屏幕足够宽,如何使两个堆栈视图彼此靠近,然后如果屏幕不够,则两个堆栈彼此位于下方。
我还在学习如何使用自动布局和约束,非常感谢帮助!!
编辑:(为清晰起见照片)
[
例如在一种情况下:仅显示按钮 y、d、k。 我希望它们以相等的距离出现在彼此下方的堆栈视图中。
【问题讨论】:
-
这是一个加载的问题。故事板将是一种困难的方式来做到这一点。我会研究 Snapkit.io 并学习以编程方式创建您的自动布局。
-
你能展示你的IB吗?会更容易理解。
-
忽略问题的第二部分,让我们专注于主要问题
-
当屏幕足够宽(常规宽度)和不够宽(紧凑宽度)时,使用尺寸类概念来控制两个堆栈视图之间的间隙
-
Pure AutoLayout 对您没有帮助,但您可以通过编程方式完成。您可以创建一个
IBOutletCollection,它基本上是一个数组并在那里添加您的约束,但需要以编程方式计算距离(因为约束附加到两个对象......您始终可以选择superview)。跨度>
标签: ios swift xcode autolayout constraints