我有以下代码,在 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
我看到了属性文本?为什么前一行代码不起作用?
答案 0 :(得分:2)
我尝试将您的代码添加到一个完全干净的项目中,但发现了两个潜在问题。也许你已经想到了他们两个,但我无法从你的问题中读到,所以这里是:)
有点棘手,但是当您在文本中添加 \n
时,这也意味着如果您没有明确告诉您的 UILabel
考虑一下,它只会显示第一行......在你的情况下是空的:)
所以,尝试添加
textLabel.numberOfLines = 0
告诉您的 UILabel
使用文本所需的尽可能多的行。
我不知道您是如何设置标签的,但可能是为标签保留的尺寸太小而无法全部显示在屏幕上。您可以使用 visual debugger 检查视图层次结构,看看是否可以为您提供任何线索。
如果我将 numberOfLines
设置为 0 并向 textLabel
添加约束使其有足够的空间,我能够看到“什么是呼叫?”在我看来,这是一个光荣的 30 点粗体系统字体,所以......你很接近:)