UILabel在iOS 11中错误的换行

我有没有自动布局使用XIB的应用程序的问题。 我不知道这是否是重要的信息。

我有两个使用自动换行的UILabel。 在iOS 10中,换行正常,第一行包含一个单词+特殊字符,例如&符号。 例:

UiLabel在ios 10上

然后,在iOS 11上,自动换行工作不正常,并将ampresand放到第二行:

UiLabel在ios 11上

这是有问题的,因为通常在第二行安装的较长的单词现在不能正确显示。 任何想法有什么改变? 我知道safeArea,但看起来不像是理由。 任何想法如何将那个&符号移动到顶部,这里有足够的空间吗?

其余的设置: 大小检查员

这很可能是苹果为防止丧偶而进行的故意改变。 从devise的angular度来看,最好避免在一行文本中包含一个单词。 所以看来,UILabel现在打破了一条文本总是至less有两个字的方式。

令人惊讶的是,没有文档或方法来禁用此行为。

在这里输入图像说明

这里还有一篇关于“丧偶”和“孤儿”的文章。

这不是一个真正的答案,但我想补充说明这是一个普遍问题,与“&”符号没有任何关系。

两个UILabels

这两个UILabel都有相同的宽度限制,文本几乎相同。 但第二个有我期望的换行。 首先是不正确的,“约”可以明显地停留在第一行。

看来,用非空格(U + 00A0)replace&符号之前的空格使&字符保持在同一行上。 根据您为标签生成文本的方式,这可能不容易自动化(也许在某些情况下,您确实需要将&符号放在第二行)。