UILabel在iOS 11中错误的换行
我有没有自动布局使用XIB的应用程序的问题。 我不知道这是否是重要的信息。
我有两个使用自动换行的UILabel。 在iOS 10中,换行正常,第一行包含一个单词+特殊字符,例如&符号。 例:
然后,在iOS 11上,自动换行工作不正常,并将ampresand放到第二行:
这是有问题的,因为通常在第二行安装的较长的单词现在不能正确显示。 任何想法有什么改变? 我知道safeArea,但看起来不像是理由。 任何想法如何将那个&符号移动到顶部,这里有足够的空间吗?
其余的设置:
这很可能是苹果为防止丧偶而进行的故意改变。 从devise的angular度来看,最好避免在一行文本中包含一个单词。 所以看来,UILabel现在打破了一条文本总是至less有两个字的方式。
令人惊讶的是,没有文档或方法来禁用此行为。
这里还有一篇关于“丧偶”和“孤儿”的文章。
这不是一个真正的答案,但我想补充说明这是一个普遍问题,与“&”符号没有任何关系。
这两个UILabel都有相同的宽度限制,文本几乎相同。 但第二个有我期望的换行。 首先是不正确的,“约”可以明显地停留在第一行。
看来,用非空格(U + 00A0)replace&符号之前的空格使&字符保持在同一行上。 根据您为标签生成文本的方式,这可能不容易自动化(也许在某些情况下,您确实需要将&符号放在第二行)。