标签换行符在 xcode 中无法正常工作

Label line break not working properly in xcode

我有一个在屏幕上显示粉红色区域的标签。 但是,即使 space 有足够的 "gender " 这个词也没有显示在顶行。为什么它不出现在第一行本身?我需要什么

label.text = @"Do you believe in gender equality";

标签

UILabel 通过阻止 orphaned word 按预期工作,因此它更具可读性。这是在 iOS 11 中引入的。Apple 必须为 iMessage 禁用它,因为他们可能打算将此行为用于长文本文章,而不是短信。

我看到的修复包括

  • 设置好文本后在标签上调用sizeToFit
  • 设置UserDefaults.standard.set(false, forKey: "NSAllowsDefaultLineBreakStrategy") // Using this private tricky shortcut may leads appstore rejection.

但其中 none 个正在 iOS 13 模拟器上运行(未在设备上测试)。


修复

一个棘手的解决方案是 - 在文本中附加一些空格或两个制表符 ("\t\t") 并以编程方式设置。

使用以下代码:

label.lineBreakStrategy = []