在我的应用程序中,我有一个UILabel
里面有很多文字。当用户进行研究时,我想突出显示用户搜索的文本下的背景。这是 MacOSX 中“预览”的示例。
用户搜索静音,该词在文本中突出显示。
有任何想法吗 ?谢谢。
也许这是一个老问题。但我认为这会对某人有所帮助。
为了突出显示 中的部分文本,我编写了一个名为HighlightLabelUILabel
的开源代码。
您可以简单地指定hightlightText
andhighlightColor
来突出显示它。
_highlightLabel.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.";
_highlightLabel.highlightText = @"Lorem ipsum dolor sit er elit lamet";
_highlightLabel.highlightColor = [UIColor yellowColor];
您需要启用 UILabel(或 UITextView/自定义视图)的“属性”文本。然后你需要找到/制作一个很好/快速的算法来更改文本某些部分的颜色(bg/text)颜色。您应该能够找到很多关于“属性字符串”算法来标记一些单词/匹配项。
另请查看http://iphonedevelopment.blogspot.be/2011/03/attributed-strings-in-ios.html
在这种情况下,通过使用另一种颜色/bg-color 的匹配词制作自定义 HTML,使用 webview 可能会更容易/更快。webview 几乎可以看起来像一个普通的标签,甚至提供使用链接/图像/...的选项,这在某些情况下可以改善用户体验
为此,您必须使用NSAttributedString。
这也可能有帮助。它是 UILabel 的子类,它绘制一个 NSAttributedString 并且还提供了方便的方法来从 UIKit 类中设置 NSAttributedString 的属性。
找到所需的字母/字符后,突出显示 UIView 的该部分或您在那里使用的任何内容。