我在swift中有一个应用程序,遇到了自动布局问题。我已经提出了解决方案,但它似乎没有按预期工作。
所以,这是问题所在: 我在表格视图单元格中有两个标签。 第一个应该只有一行,第二个必须有所需的行数,并根据需要占用尽可能多的垂直空间。 第一个标签应始终完整显示,因此,确定第二个标签的位置,大小和行数。当然,在绘制单元格时以编程方式设置两者的文本。
解决方案似乎非常简单:将第一个标签锚定在左侧,将其垂直居中,将第二个标签锚定到第一个标签的父顶部,右侧,底部和右侧。将第二个标签的行数设置为0. 编辑器不显示警告或错误。
这就是它的样子:
在大多数情况下,它看起来不错,如下图所示,但有时不是(下图中的红色箭头):
第一个标签应具有绝对优先级,绝不会被截断,包裹或剪切,但这种情况会发生。我做错了什么?
UPD:为了使问题更清楚,第一个标签是所谓的“边距标签”,它代表了边距和单元格的指标。这样做是为了模仿树结构。第二个当然是文本本身。 '>'是关闭评论,'v'是打开的。
答案 0 :(得分:3)
选择第一个标签(>
)并进入Interface Builder中的测量面板。
在底部附近,它将具有“内容压缩阻力”的值。目前它将是251
或751
(我记不起哪个),它将与另一个标签相同。
将此值更改为1000
。这将阻止它压缩并使第二个标签压缩。
答案 1 :(得分:0)
为第一个标签设置高度约束,为'线设置1属性
答案 2 :(得分:0)
您可以将第一个标签的尾随设置为> =到第二个标签的前导
答案 3 :(得分:0)
增加第一个标签的内容抗压缩优先级。如果需要,增加第二个标签的水平内容拥抱优先级。