自动布局,为大屏幕保留按钮间距
Autolayout, retaining button spacing for larger screens
我在界面生成器中有这样的设置:
(iphone5 尺寸)。如果屏幕尺寸增加即变宽(但按钮保持相同尺寸),我希望按钮保持在该布局中。如果我在屏幕较大时将顶部的两个按钮固定到它们各自的容器边缘,它们将彼此相距太远。我有底部按钮,可以很好地增加其尺寸。我怎样才能做到这一点?我尝试在每个按钮和容器边缘之间放置一个透明的 UIView,但无法以这种方式工作。有人可以给我一个关于如何做到这一点的指示吗?谢谢!
假设您已经设置了宽度、高度和 y 约束,要创建正确的 x 约束,您可以尝试以下方法:
- 勾选
Horizontal Center in Container
选项
- 选择你的按钮并双击新创建的约束
Align Center X to
- 将
Second Item
从 Center X
更改为 Trailing
- 输入一个
constant
值来偏移位置
对两个按钮执行此操作。第二个按钮的 constant
值应该是第一个按钮的负值并且它的 Second Item
应该是 Leading
.
结果
此方法将导致所有尺寸 类.
上的间距相等
唯一的缺点是间距不是动态的。为此,您需要在两者之间添加一些占位符视图。
我想说您可以采用两种方法:
假设按钮具有宽度和高度限制。
1) 使用透明视图,在其包含视图内水平居中。然后将左侧按钮的后缘固定到透明视图,将右侧按钮的前缘固定到中心。您可以选择如何定义它们的垂直位置。
或
2) 将透明容器视图添加到主视图,然后将两个按钮移到该视图内。将两个按钮按所需宽度固定,然后将其他按钮边缘以 0pts 大小固定到包含视图。最后将新的包含视图在视图中水平居中。您将需要从顶部或底部定义此容器视图的高度。
第二个可能更容易在故事板中执行。
我在界面生成器中有这样的设置:
(iphone5 尺寸)。如果屏幕尺寸增加即变宽(但按钮保持相同尺寸),我希望按钮保持在该布局中。如果我在屏幕较大时将顶部的两个按钮固定到它们各自的容器边缘,它们将彼此相距太远。我有底部按钮,可以很好地增加其尺寸。我怎样才能做到这一点?我尝试在每个按钮和容器边缘之间放置一个透明的 UIView,但无法以这种方式工作。有人可以给我一个关于如何做到这一点的指示吗?谢谢!
假设您已经设置了宽度、高度和 y 约束,要创建正确的 x 约束,您可以尝试以下方法:
- 勾选
Horizontal Center in Container
选项 - 选择你的按钮并双击新创建的约束
Align Center X to
- 将
Second Item
从Center X
更改为Trailing
- 输入一个
constant
值来偏移位置
对两个按钮执行此操作。第二个按钮的 constant
值应该是第一个按钮的负值并且它的 Second Item
应该是 Leading
.
结果
此方法将导致所有尺寸 类.
上的间距相等
唯一的缺点是间距不是动态的。为此,您需要在两者之间添加一些占位符视图。
我想说您可以采用两种方法:
假设按钮具有宽度和高度限制。
1) 使用透明视图,在其包含视图内水平居中。然后将左侧按钮的后缘固定到透明视图,将右侧按钮的前缘固定到中心。您可以选择如何定义它们的垂直位置。
或
2) 将透明容器视图添加到主视图,然后将两个按钮移到该视图内。将两个按钮按所需宽度固定,然后将其他按钮边缘以 0pts 大小固定到包含视图。最后将新的包含视图在视图中水平居中。您将需要从顶部或底部定义此容器视图的高度。
第二个可能更容易在故事板中执行。