自动布局:需要 y 位置或高度的约束

Posted

技术标签:

【中文标题】自动布局:需要 y 位置或高度的约束【英文标题】:Autolayout : Need constraints for y position or height 【发布时间】:2017-12-04 13:17:33 【问题描述】:

我试图满足约束形式很长一段时间,但得到了错误,即黄色视图和绿色视图的“y 位置或高度需要约束”。基本上我在 UIView 中有 2 个 UILabel(动态高度),在一个 Cell 中有 4:3 比例的 UIImageView。

我应用的约束是

我还包括带有上述问题的示例项目here。

【问题讨论】:

【参考方案1】:

只需要一个约束

提供子标题标签height >= (Greater than equal to) 约束

因为您应用了 4:3 的 UIImageView 的纵横比 所以它需要在对其应用比率之前固定其他项目的高度和 Y 位置。 通过将高度赋予副标题 Autolayout 能够计算出图像比例所需的最小值

希望对你有帮助

【讨论】:

@Prasant Tukadiaya 感谢您的关注,但在我的情况下,如果没有副标题,副标题高度也可能为零。 大于等于是我唯一缺少的东西。谢谢。【参考方案2】:

我附上了两张图片,一张是输出,另一张是视图的约束(UILabel,UIImageView)。出于测试目的,我将长文本放在 UILabel 中,测试后我将文本缩减为“标题它是”和“子标题它是”。让我知道,如果它的工作不是。在此处输入图像描述

【讨论】:

感谢您的宝贵时间。上面的东西也对我有用,但是我把上面的东西放在 View 或 UITableviewcell 中,它们的高度不会自动计算。 如果你按照我分享的程序,高度会自动计算。无论“标题:”是否存在。 你是否也在 imageView 中应用了比例(例如,取 4:3) 如果您的图像是 4:3,那么将图像设置为 Espect fit 即可。顶部、底部、前导、尾随都是 + 5。仅此而已。

以上是关于自动布局:需要 y 位置或高度的约束的主要内容,如果未能解决你的问题,请参考以下文章

iOS 10 中的自动布局增加高度并使 Y 位置为负

即使启用了自动布局,我能否以编程方式设置特定视图的框架?

动态调整视图大小(拖动运动)时自动布局约束中断

自动布局:Y 位置作为两个值的最大值

当单元格的高度略微增长时,为啥我的标签不遵守我的自动布局约束?

以编程方式将自动布局约束添加到恒定宽度和高度的子视图