Das Problem, das ich habe, ist, dass ich in der Lage sein möchte, die Textfarbe eines bestimmten Textes in einer Textansicht 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 ich verwenden möchte NSMutableAttributedString
, aber ich finde keine Ressourcen, wie ich dies in Swift verwenden kann. 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 Textfarbe geändert werden muss, und sie dann der zugewiesenen Zeichenfolge hinzufügen muss. Was ich wissen muss, ist, wie man die richtigen Zeichenfolgen aus dem zugeschriebenen String findet und dann ihre Textfarbe ä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 fand meine eigene Antwort, indem ich einen Code aus übersetzte
Ä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 mehrerer Strings ändern möchte, werde ich eine Hilfsfunktion erstellen, um dies zu handhaben. Dies funktioniert jedoch zum Ändern der textColor.