私が抱えている問題は、TextViewの特定のテキストのtextColorを変更できるようにしたいということです。私は連結された文字列を使用していて、TextViewのテキストに追加する文字列が欲しいだけです。私が使いたいのはのようですがNSMutableAttributedString
、Swiftでこれを使用する方法についてのリソースは見つかりません。私がこれまで持っているのは次のようなものです:
let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString
ここから、textColorを変更する必要がある単語の範囲を見つけて、属性付き文字列に追加する必要があることがわかります。私が知る必要があるのは、attributedStringから正しい文字列を見つけて、そのtextColorを変更する方法です。
評価が低すぎるので自分の質問には答えられませんが、ここに私が見つけた答えがあります
からいくつかのコードを翻訳して翻訳することで自分の答えを見つけました
NSAttributedStringの部分文字列の属性を変更する
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
複数の文字列のtextColorを変更したいので、これを処理するヘルパー関数を作成しますが、これはtextColorを変更するために機能します。