YYLabel 自动布局 HTML字符串转富文本和 富文本文字点击事件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Z1591090/article/details/81170760

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 里面来进行转化

  

猜你喜欢

转载自blog.csdn.net/Z1591090/article/details/81170760