如何防止UILabel将最后一个“短”字粘贴到上一个?

时间:2019-04-16 15:41:14

标签: ios uilabel

我注意到UILabel不能正确包装单词。它将最后一个短字(不超过10个字符)粘贴到前一个短字,并将它们一起移动到第二行。

检查插图: enter image description here

标签1::第一行中有足够的空间容纳单词“七”(符合预期)。

标签2::又添加了一个“短”字,并将“七个”字迁移到第二行(我想避免这种行为)。

标签3:最后一个单词包含10个字符,并且标签仍将其视为“短”。

标签4::最后一个单词包含11个字符,现在与单词“七”分离,该单词返回到第一行(按预期)。

貌似,苹果公司与“寡妇”作斗争,并通过这种行为迫使他们获得“良好的排版”。但是有时候我不需要这样的照顾。因此,如何防止UILabel将最后一个单词粘贴到前一个单词上?

2 个答案:

答案 0 :(得分:0)

iOS / macOS上的大多数字体都是成比例的,并且字体系统会尝试使用良好的排版标准。因此,字符和/或版式将根据周围的其他字符,行长等来更改间距。要获得更可预测的文本显示,请使用具有固定间距的字体(如Monaco或其他固定间距的字体)。这将产生更加可预测的显示。

这是Apple的版式指南,始于:

https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/typography/

答案 1 :(得分:0)

通过将NSAllowsDefaultLineBreakStrategy设置为false来解决。 enter image description here