使用自动布局将 3 个按钮与目标 C 中的动态内容对齐

Posted

技术标签:

【中文标题】使用自动布局将 3 个按钮与目标 C 中的动态内容对齐【英文标题】:Aligning 3 buttons with dynamic contents in objective C using Autolayout 【发布时间】:2017-01-05 11:20:00 【问题描述】:

我有 3 个按钮,一个在另一个下方。要求是,所有按钮都应该居中对齐。动态内容应该适合这 3 个按钮。请帮我解决这个问题。我对内容拥抱、抗压缩和内在内容大小只有模糊的了解。非常感谢您。

【问题讨论】:

最简单的解决方案是将堆栈视图用于按钮并将堆栈视图设置在中心。对于动态内容集 stackviews heightConstraint 大于等于关系。 @Vishal:嗨,Vishal,谢谢您的评论。您能告诉我在 ios 9 下的实现吗? 会是一样的。只需使用 UIView 而不是 stackView。对所有按钮应用相同的高度和相同的宽度约束,并处理容器 UIView 的高度约束。 【参考方案1】:

iOS 9 及更高版本:

使用UIStackView 嵌入所有buttons 并将stack view 设置在view 的中心。对于动态内容,设置stackView's heightConstraint 大于等于relation (>=)。

iOS 8 及更早版本:

只需使用UIView 而不是UIStackView。其余的都是一样的。

【讨论】:

【参考方案2】:

UIStackView 中嵌入所有UIBUttons,并根据需要设置stackViews 属性。

要了解这个想法,请参阅this answer。

注意:UIStackView 仅适用于 iOS >= 9。

【讨论】:

取决于他需要支持的iOS。 Stackviews 仅在 iOS 9+ 上可用,如果这不是问题,那么是的,最简单的方法是使用 stackview。 @Pancho:正确。添加了回答提示。 如果版本是 @shallowThought:非常感谢您的帮助。

以上是关于使用自动布局将 3 个按钮与目标 C 中的动态内容对齐的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 动态内容中的自动布局,底部有 UIButton

自动布局根据文本调整按钮大小并让文本字段填充可用空间

使用自动布局创建带有文本和图像的 iOS 7 UIButton

如何使 UIScrollView 与自动布局和动态内容一起使用? [复制]

垂直布局组自动扩展

使用自动布局和约束设置按钮