如果找到搜索栏文本,则更改表格视图的字母颜色

Posted

技术标签:

【中文标题】如果找到搜索栏文本,则更改表格视图的字母颜色【英文标题】:Change letter color of tableview if found searchbar text 【发布时间】:2017-09-19 13:02:33 【问题描述】:

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

感谢您的想法。

【问题讨论】:

查看NSAttributedString 【参考方案1】:

使用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

【讨论】:

【参考方案2】:

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

这是没有看到任何代码的大致思路。

【讨论】:

谢谢。正如你和 anbu.kartnik 所说,我使用了 NSAttributedString。

以上是关于如果找到搜索栏文本,则更改表格视图的字母颜色的主要内容,如果未能解决你的问题,请参考以下文章

搜索栏为空或 nil 时表格为空

UISearchBarSearchField 背景视图颜色

无法在使用 UISearchController 实现的搜索栏中更改 TF 的背景颜色

如何使用python更改文本框中的特定字母颜色

更改操作栏searchview提示文本颜色

如何更改表格视图中的标签文本颜色(存储在数组中的数据)