具有 2 个多行标签、抗压缩性和最少 1 个行标签的 AutoLayout

Posted

技术标签:

【中文标题】具有 2 个多行标签、抗压缩性和最少 1 个行标签的 AutoLayout【英文标题】:AutoLayout with 2 multiline labels, compression resistance and minimum 1 line label 【发布时间】:2014-12-30 15:05:17 【问题描述】:

我在一个固定高度的单元格中有 2 个UILabels。两个标签都是多行的,我需要垂直压缩两个标签,以防文本不适合单元格。我在第一个标签上设置了稍高的优先级,因为那里的文本更重要,并且我定义了垂直空间限制和不同的抗压缩优先级。

现在两个标签都成功调整了单元格的高度,第二个标签在文本太长的情况下截断尾部,但如果两个标签中的文本太多,第一个标签优先并压缩第二个标签,所以文本要么被剪切,要么标签消失。我应该如何配置 AutoLayout 以使第二个标签的至少一行始终可见?

【问题讨论】:

【参考方案1】:

您可以使用隐藏标签来完成此操作,并且您无需更改几乎可以为您提供所需行为的现有约束。

创建限制为 1 行的隐藏标签。 将隐藏标签的垂直压缩阻力设置为 1000(必需)。 在您希望至少有一行的标签和新的隐藏标签之间创建等高约束。 将等高限制设置为大于或等于并要求 (1000) 优先级。

【讨论】:

以上是关于具有 2 个多行标签、抗压缩性和最少 1 个行标签的 AutoLayout的主要内容,如果未能解决你的问题,请参考以下文章

嵌套在水平 StackLayout 中时,多行标签不会调整父 StackLayout 的大小

对具有多行表格单元格的表格中的多行使用标签标记

具有多个标签的自我调整大小的单元格不显示多行标签

具有多行标签的窗体中的垂直对齐(水平放置标签-输入)

具有自动布局的多行UILabel,如何在不更改标签框架的情况下根据内容调整字体大小?

java,具有固定最大宽度的多行工具提示,使用 html 标签