为了账号安全,请及时绑定邮箱和手机立即绑定

在Swift中使用NSMutableAttributedString更改特定文本的颜色

在Swift中使用NSMutableAttributedString更改特定文本的颜色

一只斗牛犬 2019-11-28 09:50:30
我遇到的问题是我希望能够更改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出口。


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 1696 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信