文本太长时,IOS 11 UILabel自动换行功能不起作用

时间:2017-11-09 04:28:39

标签: swift autolayout uilabel ios11 line-breaks

当我将XCode更新为9.1时,UILabel的所有自动换行都失败了。和我一样的身体?我已设置如下属性:

cell.testLabel.text = "long text here"
cell.testLabel.lineBreakMode = .byWordWrapping
cell.testLabel.numberOfLines = 0

任何人都可以帮助我吗?感谢!!!

1 个答案:

答案 0 :(得分:1)

自iOS11以来,单词在UILabel中的包装方式似乎有意改变。调整了自动换行机制,使您的多行文字以增强的比例包裹。如果你有一个由连续短字组成的长文本,你的文本可能会被包裹,避免孤立的单词,即多个单词即将被包裹到下一行。如果完成单词足够长,则可能不需要包含额外的单词,因为比例可能看似合理。

示例

1

enter image description here

即使在第一行有一个'测试'的空间,这两个词都被包裹了。

2

enter image description here

只包含最长的单词,因为第二行已经占用了足够的空间。

截至目前,不幸的是,您不太可能影响它,因为没有引入其他属性来管理此行为。

解决方法

在某些情况下可以提供帮助。您可以用不间断的空格(U + 00A0)替换空格。这样,两个连续的单词被视为可以欺骗包装机制的单词。