设备方向发生变化时的Autolayout约束问题

时间:2015-05-29 09:24:34

标签: ios xcode6.1 nsautolayout ios-autolayout

enter image description here

我在自动布局中面临一个问题。 我想要两个按钮,如截图所示。我希望它们也能在横向模式下正确显示。

1)按钮应在中心对齐水平。

2)按钮的宽度和高度应相等。

3)按钮在两个方向(横向和纵向)上应与垂直视图的中心保持相等的距离

我遇到了条件第3的问题。我希望UI在所有尺寸的设备上都是统一的。

是否可以使用自动布局实现此目的,或者我需要更新方向更改的约束?

我正在考虑在superview的中心添加另一个视图,并在该视图中应用以下约束来实现所需的UI

1)添加另一个大小透明视图(superview的宽度,1)

2)将水平和垂直中心对齐约束添加到新添加的视图中。

3)为新添加的视图添加所有必需的约束,如宽度,高度和x位置。

现在只是这样的两个按钮

4)使用新添加的视图向按钮1添加底部空间约束 5)使用新添加的视图向按钮2添加顶部空间约束

这样在所有方向和所有尺寸的设备上都会保持相同。

这种方法并不好,因为我们需要添加额外的视图。 如果有人有更好的方法/想法,请建议

2 个答案:

答案 0 :(得分:1)

1)按钮应在中心对齐水平方向。 选择一个按钮

2)按钮的宽度和高度应相等。

选择一个按钮

3)按钮在两个方向(横向和纵向)上应与垂直视图的中心保持相等的距离 选择一个按钮 让我们进入中心

然后修改常量

答案 1 :(得分:1)

我认为最好的实用解决方案是在视图中嵌入按钮。

因此请重置所有约束。选择两个按钮并将它们嵌入视图中:

在此之后设置此视图始终位于中心:

此时你需要设置:

  • 按钮的高度和宽度
  • 按钮之间的距离
  • 视图的高度和宽度:
    • height =(按钮高度+按钮之间的距离)
    • width =按钮的宽度
  • 设置按钮的顶部和底部约束,以便它们可以适合查看;例如,对于顶部按钮:

这是我的最终结果:

iPhone 6肖像:

and landscape:

相关问题