我不确定我是否正确理解UIStackView
。我在UIStackView
中有一个UITableViewCell
。它包含3个UILabel
,并设置为对齐并分发Fill。
当我的第一个标签文字不长时,它看起来都很好。第二个和第三个标签占用了他们需要的空间,并且它们与右侧对齐。第一个标签占据了剩下的空间。
但是,当第一个标签包含大量文本时,它会将其他两个标签推出可见区域。我该怎么做才能确保第二个和第三个标签始终可见,并占用显示其内容所需的空间。第一个标签应始终占用剩余的可用空间,然后使用“...”
截断其文本这是我在故事板中的配置:
这就是TableView中结果的样子:
答案 0 :(得分:12)
我尝试了这里提到的其他解决方案,发现它们很难或不实用。我不想以编程方式设置和更改布局约束,所以我继续玩这些值。最后,我发现了一个非常简单的解决方案,它正是我想要的。
我所要做的就是设置"内容压缩阻力优先"在我的第一个标签上低一些。第二和第三个标签有750个,而且他们有251个和252个内容拥抱优先级"而第一个标签的值为749和250.这完全给出了我想要的结果。
无论如何,谢谢你们。有时我觉得我在问这里之后能更快地找到问题的解决方案。我希望我的回答将来会帮助其他人。
答案 1 :(得分:1)
您可以考虑将这3个视图直接放在contentView上,而不是使用UIStackView,并将第一个标签尾部设置为第二个
答案 2 :(得分:0)
为什么甚至使用stackview?只需要2个标签和一个图像视图,相应地设置所需的尺寸和约束。