我正在寻找有关如何解决这个问题的一些建议。
我从API获取一个字符串,该字符串可能包含HTML标记,例如斜体文本,粗体文本,链接,图像,段落等。
我可能会选择TTTAttributedLabel,我一般都很喜欢。
在解析过程中,我从原始字符串创建一个字符串,用于删除所有HTML标记。我正在使用项目中的NSString+HTML,这看起来效果很好。
现在我要做的是准备一个NSAttributedString
,TTTAttributedLabel
可以用来显示格式正确的文字。
我还想在一个单独的数组中同时准备链接。
我想知道正则表达式是否合适,以及我将如何实现它。
使用Regex,我可以查找<[^>]*>
的任何HTML标记,但是,我想知道标记之间的文字。
以下面的字符串为例:
The <b>quick</b> brown fox <i>jumps</i> over the <a href="http://dog.com">lazy dog</a>.
哪个应显示为:
快速棕色狐狸跳过 lazy dog。
现在,我基本上想要的是NSRange
s出现在标签内部的每个文本及其类型(但是将标签从等式中取出)。例如,对于上面的文本,我会得到:
NSRange boldRange = NSMakeRange(4, 3);
NSRange italicRange = NSMakeRange(20, 5);
NSRange urlRange = NSMakeRange(35, 8);
我认为这应该作为一个循环来完成,这样我就可以为我正在创建的NSAttributedString添加格式,当然也可以将URL范围保存到一个单独的数组中,这样我就可以在显示期间创建链接。
那里有没有图书馆可以帮助我。我发现事情时,我会尝试更新这个问题。
答案 0 :(得分:1)
您可以尝试使用OHAttributedLabel,它可以显示您要求的html字符串。