我需要在屏幕上水平布置一系列按钮,使它们在屏幕上的间隔相等,而不是它们之间的间隔相等.一个例子是在那里有3个按钮,它们是均匀间隔的,这样第一个按钮的中心位于屏幕宽度的25%,而其他按钮则是屏幕宽度的50%,75%.
这是相对简单的手动将它们放在x,y坐标,但我试图避免混合方法.
普遍的建议是在按钮之间使用垫片(UIView)并设置约束以使垫片相等.如果间隔的按钮具有可能不同的尺寸,则这不起作用.假设有3个标有"A","B","ReallyLong"的按钮.我仍然希望它们居中,屏幕中间有"B".等间隔物在它们之间留下相等的间距但不均匀分布的按钮.ReallyLong占用了太多空间而B没有居中
您可以创建约束以将按钮的centerX与其容器对齐.然后,编辑该约束,使按钮的centerX等于容器的尾随属性,乘数为0.25,0.5或0.75(和0常量).为了最自然地做到这一点,你可能需要告诉Xcode交换第一和第二项,这样Button.CenterX等于Superview.Trailing(带乘数)而不是相反.
Apple已经很好地解释了它.
在视图之间创建相等的间距
要根据设备的方向布置多个按比例间隔的视图,请在可见视图之间创建间隔视图.正确设置这些间隔视图的约束,以确保可见视图能够根据设备的方向保持间隔.
以下示例使用上述任务中的步骤来说明如何按比例间隔定位两个视图.间隔视图是为示例注释的,但通常是空的,没有背景.首先,创建两个视图并将它们放在故事板中.
添加三个间隔视图 - 一个位于最左侧视图的左侧,一个位于两个视图之间,另一个位于最右侧视图的右侧.间隔视图此时不必具有相同的大小,因为它们的大小将通过约束来设置.
为spacer视图创建以下约束:
将间隔物视图2和间隔物视图3的宽度限制为等于间隔物视图1的宽度.
将间隔物视图1的宽度限制为大于或等于
最小期望宽度.
从间隔视图1到容器创建一个前导空间到容器约束.
从间隔视图1到视图创建水平间距约束1.将此约束设置为小于或等于约束,
优先级为1000.
从间隔视图2到视图1
和视图2 创建水平间距约束.将这些约束设置为小于或等于
约束,优先级为999.
从间隔视图3到视图创建水平间距约束2.将此约束设置为小于或等于约束,
优先级为1000.
从间隔视图3到容器创建一个到容器的尾随空间约束.
这些约束创建了两个可见视图和三个不可见视图(间隔视图).这些间隔视图会随着设备方向的变化自动调整大小,保持可视视图的比例间隔,如下图所示: