swift – UITextView更改特定文本的文本颜色

swift – UITextView更改特定文本的文本颜色,第1张

概述我想更改UITextView中与数组索引匹配的特定文本的文本颜色.我能够略微修改这个 answer但不幸的是每个匹配短语的文字颜色只改变了一次. var chordsArray = ["Cmaj", "Bbmaj7"]func getColoredText(textView: UITextView) -> NSMutableAttributedString { let text = te 我想更改UITextVIEw中与数组索引匹配的特定文本的文本颜色.我能够略微修改这个 answer但不幸的是每个匹配短语的文字颜色只改变了一次.
var chordsArray = ["Cmaj","Bbmaj7"]func getcoloredText(textVIEw: UITextVIEw) -> NSMutableAttributedString {    let text = textVIEw.text    let string:NSMutableAttributedString = NSMutableAttributedString(string: text)    let words:[String] = text.componentsSeparatedByString(" ")    for word in words {        if (chordsArray.contains(word)) {            let range:NSRange = (string.string as Nsstring).rangeOfString(word)            string.addAttribute(NSForegroundcolorAttributename,value: UIcolor.redcolor(),range: range)        }    }    chords.attributedText = string    return string}

结果

对不起,我刚注意到你的消息.这是一个工作示例(在 *** 场上测试):
import UIKitfunc apply (string: NSMutableAttributedString,word: String) -> NSMutableAttributedString {    let range = (string.string as Nsstring).rangeOfString(word)    return apply(string,word: word,range: range,last: range)}func apply (string: NSMutableAttributedString,word: String,range: NSRange,last: NSRange) -> NSMutableAttributedString {    if range.location != NSNotFound {        string.addAttribute(NSForegroundcolorAttributename,range: range)        let start = last.location + last.length        let end = string.string.characters.count - start        let stringRange = NSRange(location: start,length: end)        let newRange = (string.string as Nsstring).rangeOfString(word,options: [],range: stringRange)        apply(string,range: newRange,last: range)    }    return string}var chordsArray = ["Cmaj","Bbmaj7"]var text = "Cmaj Bbmaj7 I love Swift Cmaj Bbmaj7 Swift"var newText = NSMutableAttributedString(string: text)for word in chordsArray {    newText = apply(newText,word: word)}newText
总结

以上是内存溢出为你收集整理的swift – UITextView更改特定文本的文本颜色全部内容,希望文章能够帮你解决swift – UITextView更改特定文本的文本颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存