【问题标题】:UILabel word wrapping brings extra word to next line when there is enough space for it当有足够的空间时,UILabel 自动换行会在下一行添加额外的单词
【发布时间】:2018-08-03 01:11:54
【问题描述】:

在某些情况下,UILabel 似乎会在换行时添加一个额外的单词,即使它有足够的空间,例如,

如果再追加一个词,

即使我强制标签的宽度变为如下所示,它仍然会将包含“c”的单词移动到下一行,

我尝试过扭曲 UILabel 的配置,但似乎它的行为相同,除非我将换行模式设置为字符换行,以下是上述情况的配置,

还有约束(在前两种情况下是尾随),

这种特殊行为有什么原因吗?我可以解决这个问题吗?这样一来,空间就空了,这看起来很奇怪。

【问题讨论】:

  • @agibson007 我明白了,谢谢你的帮助!
  • 我确实找到了一种方法,但目前我仍然不确定它的可靠性(调整文本大小),但布局是 def old UILabel。当我对答案感觉良好时,我会更新这些答案。
  • 找到解决办法了吗?
  • 看来下一行至少应该有两个字。

标签: ios uilabel


【解决方案1】:

这是自 iOS 11 以来的默认行为,用于修复孤立的单词。没办法关掉

修复它 使用文本作为属性文本

使用 UItextview 并打开滚动、编辑选项

在此处使用自定义标签 Get each line of text in a UILabel

【讨论】:

    【解决方案2】:

    你应该将换行设置为字符换行,因为空格后面的字母会被识别为一个单词。

    【讨论】:

      【解决方案3】:

      嘿,我知道这已经晚了,但我刚刚发现你可以通过在文本末尾添加一堆空格来欺骗系统。

      【讨论】:

        【解决方案4】:

        如果 UILable 的文本可能会更改,那么仍然可以使用带有“\n”的快速脏破解 - 换行符。

        文本“Aaaaaaaaaaaaaa bbb cccccccccc\ndddddd”将强制 UILabel 显示:

        Aaaaaaaaaaaaaa bbb cccccccccc
        ddddddd
        

        在Interface Builder中可以用Ctrl + Enter

        输入新行

        【讨论】:

          【解决方案5】:

          如果你使用 wordWrap,它会尝试保持单词的完整形式,因此,它会转到下一行。如果您使用字符换行,它将中断字符,并将字符推送到下一行。

          【讨论】:

            猜你喜欢
            • 2021-04-11
            • 2022-08-03
            • 2015-03-30
            • 2019-09-08
            • 2017-12-08
            • 2017-01-01
            相关资源
            最近更新 更多