Ändern der Farbe eines bestimmten Texts mithilfe von NSMutableAttributedString in Swift

Das Problem, das ich habe, ist, dass ich in der Lage sein möchte, die textColor von bestimmtem Text in einem TextView zu ändern. Ich verwende eine verkettete Zeichenfolge und möchte nur die Zeichenfolgen, die ich an den Text von TextView anhänge. Es scheint, dass das, was ich verwenden möchte, istNSMutableAttributedString, aber ich finde keine Ressourcen, wie man dies in Swift verwendet. Was ich bisher habe, ist ungefähr so:

let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString

Von hier aus weiß ich, dass ich den Bereich von Wörtern finden muss, deren textColor geändert werden muss, und sie dann der zugeordneten Zeichenfolge hinzufügen muss. Was ich wissen muss, ist, wie man die korrekten Zeichenketten vom attributedString findet und dann ihre textColor ändert.

Da ich eine zu niedrige Bewertung habe, kann ich meine eigene Frage nicht beantworten, aber hier ist die Antwort, die ich gefunden habe

Ich habe meine eigene Antwort gefunden, indem ich Code aus übersetzt habe

Ändern Sie die Attribute von Teilzeichenfolgen in einem NSAttributedString

Hier ist das Beispiel für die Implementierung in Swift:

let string = "A \(stringOne) and \(stringTwo)"
var attributedString = NSMutableAttributedString(string:string)

let stringOneRegex = NSRegularExpression(pattern: nameString, options: nil, error: nil)
let stringOneMatches = stringOneRegex.matchesInString(longString, options: nil, range: NSMakeRange(0, attributedString.length))
for stringOneMatch in stringOneMatches {
    let wordRange = stringOneMatch.rangeAtIndex(0)
    attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.nameColor(), range: wordRange)
}

textView.attributedText = attributedString

Da ich die textColor von mehreren Strings ändern möchte, werde ich eine Hilfsfunktion erstellen, um dies zu handhaben, aber dies funktioniert für das Ändern der textColor.

Antworten auf die Frage(21)

Ihre Antwort auf die Frage