如何安排两个UILabel,以便一个自动调整,另一个占用剩余空间?

时间:2018-04-05 16:32:34

标签: ios uilabel interface-builder

我在TableViewCell中有两个水平排列的标签。右边应该使用尽可能多的空间,而应该留下的空间用尽剩下的空间。在两个标签的长度大于单元格宽度的情况下,应修剪左侧标签,使右侧有足够的空间来完全显示。标签与各自的边对齐,如果这有所不同。

尺寸检查器下的“排列>垂直填充容器”选项与左标签所需的类似,但我希望它只占用正确标签不需要的空间。

Example

如果我在左侧标签上的尾随空格中添加一个约束(参见下面的第三个约束),结果几乎就是我所需要的,但是没有给出正确的标签所需的空间,左侧标签需要所需的空间(见最终图像)。

Constraints

Example 2

2 个答案:

答案 0 :(得分:1)

我认为这比你想象的要容易......

约束" LeftLabel"领导,约束" RightLabel"尾随,约束两者之间的水平间距为>= 8,然后给出" LeftLabel"内容压缩阻力优先级为Low (250)

告诉自动布局根据文本内容展开每个标签,但如果它们之间的距离最终小于8,请让#34; RightLabel"扩展到它的文本,但扩展" LeftLabel"只是来自" RightLabel"。

的8分

enter image description here

选择左标签:

enter image description here

结果:

enter image description here

答案 1 :(得分:0)

调整内容拥抱优先级和压缩阻力优先级。正确的标签应该具有比左侧更高的水平内容拥抱优先级和内容压缩优先级。这与以下约束(用可视化格式语言编写)相结合,可以给你带来理想的效果:

|-[leftLabel]-[rightLabel]-|

如果右侧标签中的文字太长,则可能导致左侧标签宽度变为0.在左侧标签上设置宽度约束,并使用> =宽度来解决问题。