NSLayoutConstraint为UILabel"增长"额外的线条

Fog*_*ter 7 objective-c uilabel ios nslayoutconstraint

我有一个UILabel,我想设置它,以便它有一个固定的宽度和可变高度取决于它text而不是它superView.

即如果text是"Hello World".然后标签将是......

------------------------
|Hello World.          |
------------------------
Run Code Online (Sandbox Code Playgroud)

如果text是"这是一些超过几行的非常长的文本".然后标签将是......

------------------------
|This is some very long|
|text that goes over   |
|several lines.        |
------------------------
Run Code Online (Sandbox Code Playgroud)

我已经使用a设置了固定宽度,NSLayoutConstraint并且我已将其设置numberOfLines为0,但它只保留一行高度并将文本与省略号连接起来.

我知道有一些叫做"contentResistance"的东西,但是我不确定这个名字或者如何使用它.

这可能吗?

jrt*_*ton 10

您需要preferredMaxLayoutWidth将标签设置为固定宽度.我不知道为什么它不能解决这个问题,因为你已经限制了宽度,但是你去了.

如果在Autolayout世界中设置固定大小感觉不对(它应该!)那么你可以在viewDidLayoutSubviews中设置布局发生标签宽度的值.在这种情况下,请注意不要陷入使布局无效的无限循环.