【发布时间】:2018-05-24 18:00:08
【问题描述】:
我的应用中有一些搜索选项,它将突出显示UISearchBar 中的给定单词。给定的单词可能在标签中出现多次,我不需要突出显示所有这些单词。这怎么可能,我已经尝试了一些代码,但它只会突出显示该单词的一次出现,这是我的示例代码:
var SearchAttributeText = "The"
let range = (TextValue as NSString).range(of: SearchAttributeText)
let attribute = NSMutableAttributedString.init(string: TextValue)
attribute.addAttribute(NSForegroundColorAttributeName, value: UIColor.red , range: range)
self.label.attributedText = attribute
需要同时支持Upper 和lower 情况。字The可能出现多次,需要全部高亮。
【问题讨论】:
-
@Bhadresh 我已经提到了这个博客,他们根据范围而不是给定字符改变颜色
-
在this question的帮助下获取特定子字符串的所有范围并遍历它们。
-
您可以在
range(of:)上使用NSRegularExpression或for 循环(注意range(of:)具有“变体”以及不区分大小写等选项)来获取搜索文本出现的所有范围.
标签: ios swift3 attributes nsattributedstring nsmutableattributedstring