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 は UIKit が理解できない SwiftUI 属性を適用していると考えます。これがどの種類の属性付き文字列属性であるかを指定する必要があります。

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