Xcode 7 - 约束 - 按钮之间的相等间距

Posted

技术标签:

【中文标题】Xcode 7 - 约束 - 按钮之间的相等间距【英文标题】:Xcode 7 - Constraints - equal spacing between buttons 【发布时间】:2016-08-04 23:01:58 【问题描述】:

我正在尝试让 11 个按钮之间的水平间距相等,我已经尝试过使用 IB,但我无法让按钮在不同的屏幕尺寸中等间距。我还想增加按钮的大小,并在更大的屏幕上保持每个按钮的比例。

3.5 英寸

5.5 英寸

我一直在尝试所有不同的约束设置,但我无法正确设置。这有可能实现吗?如果可以,如何实现?

【问题讨论】:

How to add Equal Spacing and equal width for button in ios Auto layout的可能重复 【参考方案1】:

要等间距布局 11 个按钮,请在它们之间放置 10 个间隔视图:


设置以下约束:

    在最左边的按钮和左边距之间设置Leading Space to Container View Margin约束。 在最右边的按钮和右边距之间设置Trailing Space to Container View Margin约束。 将所有按钮和间隔视图固定到它们的左右邻居。 常数应该是0。 设置所有间隔视图的高度(类似于64)。 在最左边的按钮和顶层视图之间设置等宽约束。将乘数更改为1:18。这将允许按钮大小在更大的屏幕上增大。 选择所有 11 个按钮(按住 shift 并单击 11 个按钮。选择 Equal WidthsAspect Ratio。使 宽高比 常量 1 用于方形按钮。 选择所有 10 个间隔视图并设置等宽。 在最左边的按钮和上边距之间设置垂直间距到顶部布局指南约束。 选择所有 11 个按钮和 10 个间隔视图,然后选择对齐垂直中心。 选择所有 10 个间隔视图并在 Attributes Inspector 中设置它们的 hidden 属性。

在 iPhone 4S(3.5 英寸)上:


在 iPhone 6S Plus(5.5 英寸)上:

【讨论】:

非常感谢,非常好的方法。【参考方案2】:

使用水平的UIStackView 并将其设置为“平均填充”

【讨论】:

谢谢,但我也在寻找适用于 8.0 的解决方案 同样使用stack view最小宽高为30px; @SNos 查看FDStackView

以上是关于Xcode 7 - 约束 - 按钮之间的相等间距的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIfields 之间设置相等的水平间距

如何使用 AutoLayout Constraints 在 ios xcode 6.3 中的多个标签之间创建相等的间距

Xcode Autolayout - 约束等于另一个约束

使用自动布局在屏幕上水平均匀分布按钮。它们之间的间距不相等

如何在Xcode的Interface Builder中一次编辑多个约束

xcode 7按钮重叠