iOS Autolayout:处理不同的屏幕高度

时间:2015-01-26 14:53:05

标签: ios iphone autolayout

我绝望地试图掌握Autolayout并需要有关如何最好地处理以下场景的建议。我正在使用我需要适当布局的现有设计,以便它可以在任何iPhone屏幕尺寸上运行。

对于每个屏幕,我都确定了应该部分展开/折叠的应用程序部分,以弥补屏幕高度的差异。我在下面的图片中说明了这一点。首先,这是解决问题的最佳方法吗?

example layout

假设这是解决问题的最佳方法,应该如何添加约束来修复视图的定位和高度1,2& 4,同时允许视图2及其内容根据设备视图高度弯曲?

我已经大量尝试了约束,并且无法实现图示的结果。

3 个答案:

答案 0 :(得分:2)

我将如何做到这一点。

所有观点:

  • 将前导和尾随空格与超级视图对齐

查看1:

  • 将顶部与超视图或顶部布局指南对齐

  • 添加固定高度

查看4:

  • 将底部与超视图或底部布局指南对齐

  • 添加固定高度

查看3:

  • 将底部对齐到视图4(使用垂直间距)

  • 添加固定高度

查看2:

  • 将顶部对齐到视图1

  • 将底部对齐到视图3

答案 1 :(得分:1)

如果您想在图片中显示结果,请按照以下步骤操作。您可以选择使用wAny | hAny size class。

  1. 从上到下,将每个相邻视图之间的垂直间距设置为0.
  2. 将view1和view3以及view4的高度约束设置为静态值。
  3. 然后,view2的高度应根据不同的屏幕尺寸而变化。

    从你的图片看,你的view1占据了几乎一半的屏幕空间。所以我的建议是使其高度成比例,你可以将view1及其superview设置为相等的宽度,然后将此等宽度约束的比率修改为0.5。您可以对图片中的其他视图执行相同的操作。

答案 2 :(得分:0)

除了其他答案,使用视觉格式,它应该像这样的smth

V:|[view1(HIGHTV1)][view2][HIGHT3(HIGHTV3)][view4(HIGHTV4)]|

使用静态尺寸

重新HIGHTVX