突出显示UILabel中的部分文本

时间:2012-10-10 09:44:21

标签: ios ipad uilabel

在我的应用程序中,我有一个UILabel,里面有很多文字。当用户进行研究时,我想突出显示用户搜索的文本下的背景。 这是MacOSX中“预览”的示例。

enter image description here

用户搜索沉默,并在文字中突出显示该字词。

有什么想法吗? 感谢。

3 个答案:

答案 0 :(得分:1)

您需要启用“归因”' UILabel(或UITextView /自定义视图)的文本。然后,您需要找到/制作一个漂亮/快速的算法来更改文本某些部分的颜色(bg /文本)颜色。你应该能够找到相当多的归因于字符串'用于标记某些单词/匹配的算法。

请同时查看http://iphonedevelopment.blogspot.be/2011/03/attributed-strings-in-ios.html

在这种情况下,通过使用另一种颜色/ bg颜色的匹配单词制作自定义HTML,可以更容易/更快地使用webview。 webview几乎可以看起来像普通标签,甚至提供使用链接/图像/ ...的选项,这可以在某些情况下改善用户体验

答案 1 :(得分:1)

也许这是一个老问题。但我认为这对某人有帮助。

要在UILabel中突出显示部分文字,我写了一个名为HighlightLabel的开源。

您只需指定hightlightTexthighlightColor即可突出显示它。

_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];

答案 2 :(得分:0)

您必须使用NSAttributedString

This也可能有所帮助。它是UILabel的子类,用于绘制NSAttributedString,还提供了从UIKit类设置NSAttributedString属性的便捷方法。

一旦找到所需的字母/字符,请突出显示UIView的部分或您在那里使用的任何内容。