1. HTML字符串转富文本
在写一个IOS的APP时,有一部分片段是HTML字符串,这时候我们需要转化为可变的NSMutableAttributedString
并且识别里面的超链接,。代码如下
#pragma mark - HTML转变String
-(NSMutableAttributedString *)p_htmlChangeString:(NSString *)aString{
NSMutableAttributedString *oneString = [[NSMutableAttributedString alloc]initWithData:[aString dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType} documentAttributes:nil error:nil];
[oneString enumerateAttributesInRange:oneString.yy_rangeOfAll
options:0
usingBlock:^(NSDictionary<NSAttributedStringKey,id> * _Nonnull attrs, NSRange range, BOOL * _Nonnull stop) {
NSURL *link = [attrs objectForKey:NSLinkAttributeName];
if (link)
{
//链接变颜色
[oneString yy_setTextHighlightRange:range
color:[UIColor blueColor]
backgroundColor:[UIColor whiteColor]
tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) {
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:link.absoluteString]];
}];
}
}];
return oneString;
}
2.注意的地方
这个方法比较好性能,最好在model 里面来进行转化