2015-10-06 27 views
0

我对iPad应用程序中的UIButton进行了约束,以便顶部的一排按钮与UIImageView保持一定的距离,因此最下面一排按钮保持固定在底部附近。但是,当我旋转它全错了。以下是肖像时和风景时的图像。考虑到景观模式下垂直房地产的数量较少,如何解决这个问题呢?AutoLayout在每个其他顶部有按钮

enter image description here

enter image description here

回答

1

你要么需要在旋转缩放你的子视图的大小,或使用滚动视图。

由于您将按钮定位在离屏幕底部一定距离处,而不是保持一致的间距,因此当没有足够的空间时它们会重叠。 (我从你的截图中假设它正在打破2排按钮之间的约束,假设有一个)

你可以将每行按钮的可用空间与主视图的总垂直大小。例如,让图像占总垂直空间的50%,并为每行按钮设置25%(我将为每行设置一个容器视图,然后向容器添加约束)。确保您的图像/按钮正确缩放并保持宽高比。

另一种选择是识别视图何时旋转,并修改所有约束,以便按钮的所有布局排成一行,但这可能需要大量编码来交换/更改大部分约束。

+0

每行按钮之间当前没有垂直约束间隙。如何添加,还是应该添加?我为这个特定的应用程序使用XIB而不是Storyboard,所以它对现在为AutoLayout编写的大部分教程都有一定的影响。你认为最简单的方法是什么?我很想在旋转时只有一行,但不知道如何完成。 – user717452

+0

尝试在每行按钮之间放置一个垂直约束。例如,从一个按钮向下拖动到下面的按钮,然后选择“垂直间距”。然后在Size Inspector中查找约束,将类型从“Equal”更改为“Greater than或Equal”,并将常量设置为0.看看这是否适合你。尽管取决于其他约束条件的设置,但这可能不起作用。 – Stonz2

+0

@ user717452我看到你的两个屏幕截图均来自iPad。如果这是唯一的目标设备,则需要考虑的另一件事是将所有6个按钮放在一个行中,无论是纵向还是横向,因为在更大的iPad屏幕上会有足够的空间来完成此操作。 – Stonz2