自动布局,为大屏幕保留按钮间距

Autolayout, retaining button spacing for larger screens

我在界面生成器中有这样的设置:

(iphone5 尺寸)。如果屏幕尺寸增加即变宽(但按钮保持相同尺寸),我希望按钮保持在该布局中。如果我在屏幕较大时将顶部的两个按钮固定到它们各自的容器边缘,它们将彼此相距太远。我有底部按钮,可以很好地增加其尺寸。我怎样才能做到这一点?我尝试在每个按钮和容器边缘之间放置一个透明的 UIView,但无法以这种方式工作。有人可以给我一个关于如何做到这一点的指示吗?谢谢!

假设您已经设置了宽度、高度和 y 约束,要创建正确的 x 约束,您可以尝试以下方法:

  1. 勾选 Horizontal Center in Container 选项
  2. 选择你的按钮并双击新创建的约束Align Center X to
  3. Second ItemCenter X 更改为 Trailing
  4. 输入一个 constant 值来偏移位置

对两个按钮执行此操作。第二个按钮的 constant 值应该是第一个按钮的负值并且它的 Second Item 应该是 Leading.

结果
此方法将导致所有尺寸 类.
上的间距相等

唯一的缺点是间距不是动态的。为此,您需要在两者之间添加一些占位符视图。

我想说您可以采用两种方法:

假设按钮具有宽度和高度限制。

1) 使用透明视图,在其包含视图内水平居中。然后将左侧按钮的后缘固定到透明视图,将右侧按钮的前缘固定到中心。您可以选择如何定义它们的垂直位置。

2) 将透明容器视图添加到主视图,然后将两个按钮移到该视图内。将两个按钮按所需宽度固定,然后将其他按钮边缘以 0pts 大小固定到包含视图。最后将新的包含视图在视图中水平居中。您将需要从顶部或底部定义此容器视图的高度。

第二个可能更容易在故事板中执行。