自动布局 - StackView 删除现有约束

Posted

技术标签:

【中文标题】自动布局 - StackView 删除现有约束【英文标题】:Auto-layout - StackView deleting existing constraints 【发布时间】:2017-05-18 18:23:17 【问题描述】:

我几乎没有学习在 xCode Interface Builder 中使用自动布局实现一些 ios 应用程序屏幕。

我已经放置了一些具有工作约束的元素,但我意识到将它们组合成一个垂直的StackView 会更实用。

起初看起来很简单,就像我在前一个屏幕上所做的那样。但是,一旦我将元素嵌入到 StackView 中,我所有的边距约束都消失了!此外,如果我尝试手动放回我的约束,它们根本不起作用并产生歧义。

我不完全了解 iOS UI builder 的工作方式,所以我很乐意需要一些帮助。

请看下面的截图。

【问题讨论】:

“边距约束”是什么意思?您是指在堆叠视图之间放置空间的垂直约束吗?或者您是在谈论内部视图和***视图的边距之间的约束? 两者,如屏幕截图所示。 花一点时间尝试堆栈视图的不同特征 - AlignmentDistribution,尤其是 Spacing。这可能会给你你想要的。 谢谢!刚刚在您发表评论前 5 分钟发现。分布是问题所在。您可以将其发布为答案,以便我可以将其检查为已关闭。 :) 【参考方案1】:

堆栈视图内的约束可能很古怪,但玩弄/试验这些特性会有所帮助。

特别是,调整AlignmentDistributionSpacing 通常可以解决问题。

【讨论】:

以上是关于自动布局 - StackView 删除现有约束的主要内容,如果未能解决你的问题,请参考以下文章

Stackview中的iOS 10方形UIIMageView在隐藏时会破坏自动布局

iOS9之UIStackView体验,无需任何约束,这才是真正的自动布局,快到不能呼吸

添加约束时缺少自动布局“安全区域”

两个堆栈视图中的多行视图的自动布局问题

使用自动布局在条中的项目之间排列水平空间

AutoLayout经常用到的一些布局(含StackView)