2016-06-26 34 views
-2

我有一个循环遍历字符串数组以查找字符串。我有一个变量“searchText”,我想在字符串“aText”中用红色突出显示。为搜索项设置字符串属性Swift 2

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多次。

任何帮助,将不胜感激!

+0

“我已经使用NSMutableAttributedString但它没用”然后你用错了,因为这就是你“用红色突出显示”的方式。尽管如此,你的代码并没有使用任何属性的字符串,所以谁能猜出你的尝试? – matt

+0

如果我使用NSMutableAttributedString,结果文本只显示一个结果。我不确定它是否可以将字符串归为类似resultText.attributedText = mutableStringA + mutableStringB – yousuf12

回答

0
//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)) 

} 
+0

我在let count = aArray![i] .length 处得到一个错误,我将如何实现这一点以确保我的textfield显示所有结果,而不仅仅是一个? – yousuf12