我有一个 UILabel
,我想对其进行设置,使其具有固定的宽度和可变的高度,这取决于它的 text
而不是它的 superView
.
即如果 text
是“Hello World”。那么标签将是...
------------------------
|Hello World. |
------------------------
并且如果 text
是“这是一些很长的文本,超过几行。”然后标签将是...
------------------------
|This is some very long|
|text that goes over |
|several lines. |
------------------------
我已经使用 NSLayoutConstraint
设置了固定宽度,并将 numberOfLines
设置为 0,但它只保持一个行高并用省略号连接文本。
我知道有一种叫做“contentResistance”的东西,但我不确定它的名字或如何使用它。
这可能吗?
最佳答案
您需要将标签的 preferredMaxLayoutWidth
设置为您的固定宽度。我不知道为什么它不能自己解决这个问题,因为你已经限制了一个宽度,但你去吧。
如果必须设置固定大小在自动布局世界中感觉不对(应该如此!),那么您可以在布局发生后 在 viewDidLayoutSubviews 中设置标签宽度的值。在这种情况下,请注意不要陷入使布局无效的无限循环。
关于ios - UILabel 的 NSLayoutConstraint 到 "grow"额外行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276356/