如果找到了搜索栏文本,请更改tableview的字母颜色

时间:2017-09-19 13:02:33

标签: ios swift uitableview swift3 uisearchbar

我有搜索栏和表格视图。我可以根据搜索栏文本过滤表格视图项目。但我必须改变找到的字​​母的颜色。例如,如果我将HE写入搜索栏,我想在表格视图中显示HELLO,但HE的颜色应该与LLO不同。

感谢您的想法。

2 个答案:

答案 0 :(得分:2)

使用NSMutableAttributedString作为你的概念,在这里我告诉逻辑自己定制你需要的地方(必须在cellForRow里面调用)

    lblcheck.text = "hello" // is the original text 
    lblcheck.textColor = UIColor.red // initally set the whole color for your text
    //Create mutable string from original one
    let attString = NSMutableAttributedString(string: lblcheck.text!)
    //Fing range of the string you want to change colour
    //If you need to change colour in more that one place just repeat it
    let range: NSRange = (lblcheck.text! as NSString).range(of: "he", options: .caseInsensitive) //he in here use searchBar.text
    attString.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: range) // here set selection color what ever you typed
    //Add it to the label - notice its not text property but it's attributeText
    lblcheck.attributedText = attString

答案 1 :(得分:1)

可以使用NSAttributedString完成文本颜色更改。当您显示搜索结果时,请在cellForRow委托方法中获取搜索字符串,并将textView中的字词替换为NSAttributedString版本。您可以更改NSAttributedString中特定字符串的颜色。

这是没有看到任何代码的一般想法。