【问题标题】:How do I get UILabel multiline and auto-shrink to recognise word length?如何获得 UILabel 多行和自动收缩以识别字长?
【发布时间】:2021-12-06 10:52:17
【问题描述】:

我的问题是试图让 UILabel 具有多行并同时自动收缩在一起。

各种文章建议采用以下方法:

textLabel.numberOfLines = 0
textLabel.adjustsFontToFitWidth = true
textLabel.lineBreakMode = .byTruncatingTail

这通常效果很好,除非单个单词比标签宽,如图所示:

所有标签的字体大小为 17,以及上面的属性。但是第三个标签,其中包含单词sesquipedalianism,因为单个单词的宽度超过了标签框的宽度。

有人知道如何让标签自动缩小内容和单个单词吗?

【问题讨论】:

    标签: swift uilabel


    【解决方案1】:

    选择你的 UILable 给 UILable 常量 那么 自动缩小到最小字体大小

    【讨论】:

    • 感谢您的回复,但遗憾的是标签会定期使用不同的文本重置,我不知道它会持续多长时间。设置内容后重置minimumFontScale 会产生与屏幕截图相同的结果。
    • @GBasher Brother 我不知道你为什么会遇到这个问题,因为如果一个字更大,它应该缩小它的大小
    • 你会认为它应该,但不幸的是它没有,正如上面屏幕截图中的第三个框所示。
    • 是的,我会在一段时间后研究它并告诉你
    【解决方案2】:

    也许它可以解决你的问题 textLabel.lineBreakMode = .byTruncatingTail改成.byWordWrapping

    【讨论】:

    • 感谢您的回复,但不幸的是,如果您将 lineBreakMode 设置为 .byWordWrapping,那么对于整个文本太长的标签,它不会自动收缩
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多