不遵守Autolayout底部间距约束

时间:2015-04-10 01:22:25

标签: ios xcode autolayout

我有一个UIButton和一个UILabel 被约束为距离Superview底部的标准距离。在iPad上运行良好,但在较小的iPhone屏幕上,当其他元素占用太多空间时,这些视图被推离屏幕边缘,尽管它们的约束与底部保持标准距离。为什么会这样?

我希望发生的是四个矩形缩小尺寸,以便“返回”和“问题”标签仍然留有距底部标准距离的空间。四个矩形可以通过以相同的比率收缩来保持纵横比和相等的宽度/高度。我没有限制他们需要等于或大于一定的大小。我也试过降低内容压缩阻力优先级。

配置:

AutoLayout Explanation

(我还在“Go Back”和左下方矩形之间的顶部间距中尝试了“等于”和“< =” (“大于或等于”最适合在iPad上保持“返回”屏幕底部)

它在iPhone 6和iPhone 6+上的外观如何 - 标签在底部被切断: AutoLayout on Device

2 个答案:

答案 0 :(得分:1)

您是否尝试降低这四个按钮的高度约束的优先级? 例如,像这样,尝试将它们设置为750

enter image description here

答案 1 :(得分:1)

您可以通过一些更改和添加来完成此工作。给前2个矩形和superview之间的前导和尾随约束赋予较低的优先级(我使用749),但仍将它们保持为“相等”。如果可能的话,这将使它们与边缘保持标准距离,但如果垂直空间与纵横比结合需要,它们将允许它们具有更大的间距。问题在于,因为它们不再需要它们,当这些约束需要拉伸时,没有任何东西说它们必须平均伸展;因此,我们需要一些方法来保持矩形居中。因此,代替左右顶部矩形之间的间距约束,添加一个小视图(我使用8x8),其中一个矩形具有centerY约束,并且对两个矩形添加零常量间距约束。将此视图赋予superview的centerX约束;此构造将为您提供之前的矩形之间相同的间距,但会使它们在超视图中居中,同时允许它们在宽度(和高度以保持纵横比)时缩小(如果需要容纳垂直空间)。 p>