多行 UILabel 没有正确换行 [重复]

Posted

技术标签:

【中文标题】多行 UILabel 没有正确换行 [重复]【英文标题】:Multiline UILabel not wrapping words correctly [duplicate] 【发布时间】:2017-03-02 17:15:54 【问题描述】:

我在调整字体大小以适应标签而不拆分任何单词时遇到问题。 我有一个标签,它将根据字符串数组动态更改其内容。 标签可以有任意数量的行。我想要的是字体大小尽可能大,同时适合标签并且不拆分任何单词。 我在情节提要上使字体大小非常大。 使用自动布局将标签放置在视图上。

例如,如果我使用此代码,则对于字符串“最确定”:

 answerLabel.numberOfLines = 0
 answerLabel.adjustsFontSizeToFitWidth = true
 answerLabel.lineBreakMode = .byTruncatingTail

我得到如下字符串: 大多数(第 1 行) 定义(第 2 行)y(第 3 行)

如果我愿意

    answerLabel.numberOfLines = 0
    answerLabel.adjustsFontSizeToFitWidth = true
    answerLabel.lineBreakMode = .byWordWrapping

我得到一个大写字母“Mo”

显然,在这种情况下,我正在寻找的是最(第 1 行)绝对是(第 2 行)。

提前感谢您的帮助。

【问题讨论】:

标签中的约束条件如何? 标签位于 UiImageView 的顶部,因此标签约束是将 X 和 Y 与图像对齐,并将宽度和高度与图像成比例。 高度有问题,脱掉 那里的解决方案很棒。自己用过 【参考方案1】:

斯威夫特 3 为动态文本信息设置行数为零,这将有助于改变文本。

var label = UILabel()
let stringValue = "Multiline UILabel not wrapping words correctly"
label.text = stringValue
label.numberOfLines = 0
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

使用界面生成器:

【讨论】:

这适用于“最确定”字符串,但不适用于其他字符串。它仍然会导致单词被拆分。 请分享您的确切查询,还有什么意思,您的设计是什么,以便我可以为您提供相应的解决方案...

以上是关于多行 UILabel 没有正确换行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

UIlabel多行文字自动换行 (自动折行)

UILabel 有时不能正确换行(自动布局)

UILabel 顶部对齐与多行

有背景颜色换行 UILabel [重复]

多行 UILabel 与固有内容大小的 UILabel 宽度相同

旋转 UIL 标签辊