我遇到的问题是,我希望能够在 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
因为我想要更改多个 String 的 textColor,所以我将创建一个 helper 函数来处理这个问题,但是这个函数可以用来更改 textColor。