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

本文介绍如何使用UILabel的attributeText属性展示H5代码片段,并针对图片尺寸与屏幕尺寸不匹配的问题,提供了解决方案。通过替换H5中的图片标签并自定义宽度,实现动态调整图片显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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:@"<" withString:@"

content = [content stringByReplacingOccurrencesOfString:@">" withString:@">"];

content = [content stringByReplacingOccurrencesOfString:@""" withString:@"\""];

NSString *html = content;

NSString * regExpStr = @"]*>";

NSRegularExpression *regex=[NSRegularExpression regularExpressionWithPattern:regExpStr options:NSRegularExpressionCaseInsensitive error:nil];

NSArray *matches=[regex matchesInString:html

options:0

range:NSMakeRange(0, [html length])];

//H5中标签数组

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:@"\"%ld\"",urlArray[i],[self getNowTimeTimestamp]+i,width]];

}

return html;

}

+(long)getNowTimeTimestamp{

NSDate *datenow = [NSDate date];

return (long)[datenow timeIntervalSince1970];

}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值