【问题标题】:AttributedString Not working with UILabelAttributedString 不适用于 UILabel
【发布时间】:2021-05-01 14:20:46
【问题描述】:

我有以下代码,在 viewDidLoad 中运行。

    let text = "\n \t What is a Call?"

    let attributedText = NSMutableAttributedString(string: text, attributes: [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 30)])
    
    textLabel.attributedText = attributedText

当它运行时,标签中没有设置任何内容。但是,如果我这样设置它

textLabel.text = text

我看到了属性文本?为什么上一行代码不起作用?

【问题讨论】:

    标签: swift uilabel nsattributedstring


    【解决方案1】:

    我尝试将您的代码添加到一个完全干净的项目中,并发现了两个潜在问题。也许你已经想到了他们两个,但我无法从你的问题中读到这一点,所以这里是:)

    行数

    有点棘手,但是当您在文本中添加 \n 时,这也意味着如果您没有明确告诉您的 UILabel 考虑到这一点,它将仅显示第一行...在您的情况下为空:)

    所以,尝试添加

    textLabel.numberOfLines = 0

    告诉您的UILabel 使用文本所需的尽可能多的行。

    标签的大小

    我不知道您是如何设置标签的,但可能是为标签保留的尺寸太小,无法全部显示在屏幕上。您可以使用visual debugger 检查视图层次结构,看看是否可以为您提供任何线索。

    如果我将 numberOfLines 设置为 0 并向 textLabel 添加约束,使其有足够的空间,我就可以看到“什么是呼叫?”在我看来,在辉煌的 30 点粗体系统字体中,所以......你很接近了 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多