首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS 11中的UILabel错误换行

iOS 11中的UILabel错误换行
EN

Stack Overflow用户
提问于 2017-09-13 22:21:18
回答 7查看 12.4K关注 0票数 55

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

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

然后在iOS 11上,换行出现了某种错误,并将ampresand放到了第二行:

这是有问题的,因为通常放在第二行的较长的单词现在不能正确显示。你知道发生了什么变化吗?我知道safeArea,但这看起来不像是理由。有没有办法把这个“&”移动到顶端,哪里有足够的空间呢?

其余设置:

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-10-24 03:35:44

这很可能是苹果为了防止寡妇线路而故意做出的改变。从设计的角度来看,最好避免一行文本中只有一个单词。因此,似乎UILabel现在以一种方式中断了行,即文本的第二行始终至少有两个单词。

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

这里还有关于“寡居”和“孤立”文本的a good article

票数 67
EN

Stack Overflow用户

发布于 2018-03-02 13:47:54

使用参数-NSAllowsDefaultLineBreakStrategy NO (一个未记录的默认设置)启动应用程序似乎会强制回到原来的行为。或者,您可以在启动时在NSUserDefaults中将NSAllowsDefaultLineBreakStrategy设置为NO (当UILabel或字符串绘制代码初始化时,苹果会为该值注册默认值YES,因此您需要在此之后注册一个重写值,或者将其插入到NSArgumentDomain中,或者只是永久设置默认值)。

苹果可能会考虑这种私有API,并拒绝使用它的应用程序;我不确定。我还没有在送货应用中尝试过这一点。但是,它在快速测试中确实有效--查看了NSUserDefaults中的设置,发现更改它会改变行为。

票数 23
EN

Stack Overflow用户

发布于 2017-10-21 02:48:54

这并不是一个真正的答案,但我想添加一个说明,说明它是一个通用问题,与与符号无关。

这两个UILabels都有相同的宽度约束,文本几乎相同。但第二个有我所期望的换行。第一个是不正确的,"about“可以明显地停留在第一行。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46200027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档