【发布时间】:2019-04-16 15:41:13
【问题描述】:
我注意到UILabel 不公平地换行。它将最后一个短词(10 个或更少字符)粘到前一个词上,并将它们一起移动到第二行。
标签#1:第一行有足够的空间放置单词“seven”(如预期的那样)。
标签#2:又添加了一个“短”字,并且字“七”移到了第二行(我想避免这种行为)。
标签#3:最后一个单词包含 10 个字符,标签仍将其视为“短”。
标签#4:最后一个单词包含 11 个字符,现在与回到第一行的单词“seven”分离(如预期的那样)。
看起来,Apple 正在与“寡妇”作斗争,并通过这种行为强制实现“良好的排版”。但有时我不需要这样的照顾。那么,如何防止UILabel 将最后一句话粘在前一个单词上呢?
【问题讨论】:
-
一个非常小的观察:我可能建议您将“UPD”作为单独的答案发布,而不是作为对您问题的编辑。见Can I answer my own question?
-
这是在 iOS 11 中完成的,以防止出现孤立词。您可以使用下面的答案关闭此行为,也可以使用 UITextview 或 CATextLayer 并手动计算字体大小。有了这些,包装将按预期进行。