【问题标题】:Set string attributes for search term Swift 2为搜索词 Swift 2 设置字符串属性
【发布时间】:2016-06-26 17:43:48
【问题描述】:

我有一个循环,它通过一个字符串数组来查找一个字符串。我有一个变量“searchText”,我想在字符串“aText”中用红色突出显示。

    for var i = 0; i < aArray?.count; i += 1 {

        if aArray![i].rangeOfString(searchText) != nil && counter != 100{
            counter += 1  
            var aText = aArray![i]
            var bText = "Example text B"
            var results = "\(aText) \n \(bText)"

            resultText.text = (resultText.text + "\n" + results)   

    }

}

我用过NSMutableAttributedString,但是没用。我对 Swift 很陌生,并且尝试了很多方法。我认为主要问题之一是因为它处于循环状态,并且我正在多次更新我的UITextView

任何帮助将不胜感激!

【问题讨论】:

  • “我用过 NSMutableAttributedString 但没用” 那你用错了,因为这就是你“用红色突出显示”的方式。但是,您的代码没有使用任何属性字符串,所以谁能猜出您尝试了什么?
  • 如果我使用 NSMutableAttributedString,结果文本只显示一个结果。我不确定是否可以将属性字符串组合成类似 resultText.attributedText = mutableStringA + mutableStringB

标签: ios swift swift2


【解决方案1】:
//inside Loop

if aArray![i] == "searchText" {
     var searchString:NSString = "The Result is "+aArray![i]
     let count = aArray![i].length
     var myMutableString = NSMutableAttributedString(string: searchString.description)  
     myMutableString.addAttribute(NSForegroundColorAttributeName, value: UIColor.blackColor(), range:NSRange(location: 0, length: 14))// i calculated manually .
     myMutableString.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range:NSRange(location: 14, length: searchString.length))

}

【讨论】:

  • 我在 let count = aArray![i].length 处得到一个错误,我现在将如何实现它以确保我的文本字段显示所有结果,而不仅仅是一个?
猜你喜欢
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
  • 2014-01-07
相关资源
最近更新 更多