多个按钮水平对齐的Autolayout问题垂直使用标签

时间:2016-01-12 10:32:54

标签: ios objective-c autolayout storyboard

请查看为wCompact|hRegular附加的ScreenShot的不同屏幕,我试图让它工作几个小时但没有取得任何成功。我的要求是在顶部会有一个带有一些预定义边距的标签。虽然标签内容会在运行时呈现,但我知道内容大小,所以我认为实际上并不需要resizable label。现在将有三排相等的距离。在第一行和第三行中,将有两个具有相同高度和宽度的按钮,在第二行中将存在水平对齐的按钮。我在故事板中设置了按钮图像和文本。控制对齐设置为水平|垂直。标签的限制是:
Pinned top space to superview, leading and trailing space equals to:8(superview), height equals:90
按钮(查看交易)的约束是:
top space to label, bottom space equals to:8(New Launches Button) leading and trailing space equals to:8(superview) and 8(Place Request Button) respectively, and equal width and height for all buttons.
看起来很好4.7和5.5但不满意较小屏幕的输出。你可以看到按钮图像的大小调整不正常(按钮的图像和文本之间的空间更大)。还有一件事是我不想设置标签的高度,因为它似乎是AutoLayout中的错误做法。非常感谢任何帮助。enter image description here For label
For Button

2 个答案:

答案 0 :(得分:0)

您应该为按钮设置纵横比,而不仅仅是相等的宽度和高度。在这种情况下,自动布局不会缩小图像。

答案 1 :(得分:0)

你真的应该把它放到滚动视图中,这样如果高度太高,用户仍然可以通过滚动查看所有内容。您也不应在标签上设置静态高度,应允许应用内在内容大小。

将子视图添加到新的滚动视图中。将此子视图的宽度固定为滚动视图的宽度。不要钉高度。

将所有按钮和标签添加到此新子视图中。将它们固定到视图的边缘,并允许内在内容大小应用限制。将各种项目设置为具有相等的宽度和高度。不要设置明确的高度或宽度(按比例或相等地做所有事情,以便自动布局可以选择合适的尺寸)。