美文网首页
UILabel展示Html代码段_调整其中图片尺寸__实现富文本

UILabel展示Html代码段_调整其中图片尺寸__实现富文本

作者: af4e8a35bc89 | 来源:发表于2020-04-24 17:39 被阅读0次
    使用UILabel之attributeText属性,展示H5代码片段,实现富文本效果。

    遇到问题:图片尺寸和屏幕尺寸不匹配,这就要求调整h5代码片段中图片标签中图片尺寸, 实现如下:

    @implementation AttributeTools
    /**
    Filter H5字符串中的图片标签,自定义图片宽度。
    @param width 宽度
    @return result
    */
    +(NSString *)pointSizeOfImageInHtml_Str:(NSString*)str Width:(CGFloat)width{
        if (str == nil || str.length == 0) { return @"";  }
        NSString *content = [str stringByReplacingOccurrencesOfString:@"&quot" withString:@"'"];
        content = [content stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"];
        content = [content stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];
        content = [content stringByReplacingOccurrencesOfString:@"&quot;" withString:@"\""];
        NSString *html = content;
        NSString * regExpStr = @"<(img|IMG)[^\\<\\>]*>";
        NSRegularExpression *regex=[NSRegularExpression regularExpressionWithPattern:regExpStr options:NSRegularExpressionCaseInsensitive error:nil];
        NSArray *matches=[regex matchesInString:html
                                        options:0
                                          range:NSMakeRange(0, [html length])];
        //H5中<img ...... />标签数组
        NSMutableArray *imgArray = [NSMutableArray array];
        NSMutableArray *urlArray = [NSMutableArray array];
        for (NSTextCheckingResult *result in matches) {
            NSRange range   = result.range;
            NSString *group = [html substringWithRange:range];
            NSRange srange1 = [group rangeOfString:@"http"];
            NSString *tempString1 = [group substringWithRange:NSMakeRange(srange1.location, group.length - srange1.location)];
            NSRange srange2 = [tempString1 rangeOfString:@"\""];
            NSString *tempString2 = [tempString1 substringWithRange:NSMakeRange(0,srange2.location)];
            [urlArray addObject:tempString2];
            [imgArray addObject:group];
        }
        for (int i = 0; i < imgArray.count; i++) {
            NSString *string = imgArray[i];
            html = [html stringByReplacingOccurrencesOfString:string withString:[NSString stringWithFormat:@"<img src=\"%@\" title=\"\" alt=\"%ld\" width=\"%f\" height=\"auto\">",urlArray[i],[self getNowTimeTimestamp]+i,width]];
        }
        return html;
    }
    +(long)getNowTimeTimestamp{
        NSDate *datenow = [NSDate date];
        return (long)[datenow timeIntervalSince1970];
    }
    @end
    
    

    相关文章

      网友评论

          本文标题:UILabel展示Html代码段_调整其中图片尺寸__实现富文本

          本文链接:https://www.haomeiwen.com/subject/yszfwhtx.html