2

这是制作属性字符串的 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。这是怎么回事?

4

1 回答 1

5

默认情况下,Swift 认为您正在应用 SwiftUI 属性,而 UIKit 不理解这些属性。您必须指定这是哪种属性字符串属性:

attrib[range].uiKit.foregroundColor = .red
//            ^^^^^
于 2021-09-02T13:29:35.003 回答