Swift 5.5 界面不显示AttributedString

Swift 5.5 AttributedString doesn't show in interface

这是制作属性字符串的 Swift 5.5 方法:

let s = "Hello"
var attrib = AttributedString(s)
if let range = attrib.range(of: "ell") {
    attrib[range].foregroundColor = .red
    self.label.attributedText = NSAttributedString(attrib)
}

问题是标签没有显示任何红色字符。事实上,我可以打印 self.label.attributedText 并且我可以看到红色属性甚至没有进入 NSAttributedString。怎么回事?

默认情况下,Swift 认为您正在应用 SwiftUI 属性,UIKit 无法理解这些属性。您必须指定属性字符串属性的种类

attrib[range].uiKit.foregroundColor = .red
//            ^^^^^