【发布时间】:2019-01-01 20:48:18
【问题描述】:
我有一个带有 2 个标签的 UITableViewCell,它们可以有不同的内容。有时左边的标签很大,右边的标签很小,或者是空的,有时右边的标签包含很多信息。
是否有可能仅通过使用约束和内容拥抱/抗压缩优先级来使它们正确显示(即不应截断任何标签并且标签的高度应尽可能小)?
我已经尝试为最小宽度添加约束,或者将压缩和拥抱的优先级更改为 1000,但我总是遇到一些问题,例如文本被截断(参见屏幕截图)或其中一个标签显示在 10 行和另一个仅在一行上(请参见第二个屏幕截图)。
这是我正在使用的一些示例数据(此处提供演示项目https://github.com/adi2004/iosamples/tree/master/TableView):
let data = [
(left: "left one two three four five", right: "7"),
(left: "left one two three four five 6 7 more here", right: "right one two three four five 6 7"),
(left: "left one two three four five 6 7", right: "right one two three four five 6 7 something"),
(left: "6 = ", right: "right one two three four five 6 7"),
(left: "left one two three four five 6 7 right one two three four five 6 7 eight right one two three four five 6 7 eight", right: "")
]
以下是我所面临问题的一些示例:
-- 或--
【问题讨论】:
-
您好,您可以使用 Content Hugging Priority 实现此目的!请查看我的视频,它已解决您的 Tableview UILabel 问题希望对您有所帮助youtube.com/watch?v=g7Hlf7U0A9w
-
谢谢,Yogesh。但是,当您事先不知道哪个标签应该更大时,这仍然不能解决问题,或者您会遇到其中一个标签被压扁并且会占用太多垂直空间的情况。
-
您是否尝试过使用
UIStackView? -
如果您不知道哪个标签,请检查一次,但使用此优先级您可以做到这一点,请告诉我您现在卡在哪种情况下