我遇到的问题是我希望能够更改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。
3 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
Swift 2.1更新:
let text = "We tried to make this app as most intuitive as possible for you. If you have any questions don't hesitate to ask us. For a detailed manual just click here."
let linkTextWithColor = "click here"
let range = (text as NSString).rangeOfString(linkTextWithColor)
let attributedString = NSMutableAttributedString(string:text)
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor() , range: range)
self.helpText.attributedText = attributedString
self.helpText是一个UILabel出口。
- 3 回答
- 0 关注
- 1696 浏览
添加回答
举报
0/150
提交
取消