ios label html图片,iOS UILabel与UITextView加载图片富文本点击看大图
背景:
功能:回复列表
要求:界面按UI给的效果图
收到的数据:带各种标签的html格式的字符串(包括web端的表情图片)
如果只是想简单的加载HTML(包括图片),点击这里。
解决方案:UILabel或UITextView加载富文本取代带图片的HTML
过滤掉 web端 回复内容 已知 的所有标签
NSString *text = allHtmlText;
//NSLog(@"这是评论的内容%@",text);
text = [text stringByReplacingOccurrencesOfString:@"
" withString:@""];
text = [text stringByReplacingOccurrencesOfString:@"
" withString:@"\n"];
text = [text stringByReplacingOccurrencesOfString:@"" withString:@""];
text = [text stringByReplacingOccurrencesOfString:@"" withString:@""];
text = [text stringByReplacingOccurrencesOfString:@"" withString:@""];
text = [text stringByReplacingOccurrencesOfString:@"" withString:@""];
text = [text stringByReplacingOccurrencesOfString:@"" withString:@""];
text = [text stringByReplacingOccurrencesOfString:@"" withString:@""];
2、创建attributedString并获取其中的图片URL及其范围
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:text];
[self getImageurlFromHtml:string];//具体实现放在文章后面
循环遍历创建图片附件 并 替换原有范围的字符串
for (int i= 0 ; i< self.rangeArr.count; i++) {
// 创建图片图片附件
NSTextAttachment *attach = [[NSTextAttachment alloc] init];
NSString *imageUrlStr = self.imageurlArray[i];
NSURL *url = [NSURL URLWithString:imageUrlStr];
NSData *imageData = [NSData dataWithContentsOfURL:url];
attach.image = [UIImage imageWithData:imageData];
attach.bounds = CGRectMake(0, 0, 15, 15);
NSAttributedString *attachString = [NSAttributedString attributedStringWithAttachment:attach];
// 点击图片跳转到safari
NSMutableAttributedString *maImageStr = [[NSMutableAttributedString alloc] initWithAttributedString:attachString];
[maImageStr addAttribute:NSLinkAttributeName value:self.imageurlArray[i] range:NSMakeRange(0, maImageStr.length)];
NSString *rangeStr = self.rangeArr[i];
NSRange range = NSRangeFromString(rangeStr);
if (i>0) {
NSInteger length = 0;
for (int j = 0; j
NSString *rangeStr0 = self.rangeArr[j];
NSRange range0 = NSRangeFromString(rangeStr0);
length = length + range0.length;
NSLog(@"\nlocation:%ld\nlength:%ld\nstringlength:%ld",range0.location,range0.length,string.length);
}
range.location = range.location - length + i;
}
//创建NSMutableParagraphStyle实例
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];
//设置行距
[style setLineSpacing:2.5];
//根据给定长度与style设置attStr式样
[string addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, string.length)];
[string replaceCharactersInRange:range withAttributedString:maImageStr];
}
4、设置UI给定的样式
self.textView.scrollEnabled = NO;
[string addAttribute: NSForegroundColorAttributeName value: [UIColor orangeColor] range: NSMakeRange(0, string.length)];
self.textView.attributedText = string
获取图片URL方法
- (NSArray *) getImageurlFromHtml:(NSMutableAttributedString *) webString
{
if (webString.length==0) {
return nil;
}
NSString *webStr = [NSString stringWithFormat:@"%@",webString];
self.imageurlArray = [NSMutableArray arrayWithCapacity:1];
self.rangeArr = [NSMutableArray arrayWithCapacity:1];
//标签匹配
NSString *parten = @"";
NSError* error = NULL;
NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:parten options:0 error:&error];
NSArray* match = [reg matchesInString:webStr options:0 range:NSMakeRange(0, [webString length] - 1)];
for (NSTextCheckingResult * result in match) {
//过去数组中的标签
NSRange range = [result range];
[self.rangeArr addObject:NSStringFromRange(range)];
NSString * subString = [webStr substringWithRange:range];
//从图片中的标签中提取ImageURL
NSRegularExpression *subReg = [NSRegularExpression regularExpressionWithPattern:@"http://(.*?)\"" options:0 error:NULL];
NSArray* match = [subReg matchesInString:subString options:0 range:NSMakeRange(0, [subString length] - 1)];
NSTextCheckingResult * subRes = match[0];
NSRange subRange = [subRes range];
subRange.length = subRange.length -1;
NSString * imagekUrl = [subString substringWithRange:subRange];
//将提取出的图片URL添加到图片数组中
[self.imageurlArray addObject:imagekUrl];
}
return self.imageurlArray;
}
点个赞或者小红心再走吧 ^ - ^
ios label html图片,iOS UILabel与UITextView加载图片富文本点击看大图相关推荐
- 用UIWebview、UILabeL、UITextView加载html富文本,图片太大显示不全的解决
(1)用UIWebview加载 // 自适应尺寸大小 - (NSString *)autoWebAutoImageSize:(NSString *)html{//搜索标签文本中的<img> ...
- js实现点击图片放大效果,以及懒加载图片
js实现点击图片放大效果,以及懒加载图片 近期有个后端管理页面小优化,原来的图片是点击才会去后端请求图片展示到前端,用dialog的方式展示,但是不太直观 存在两个问题 1.点击查看后,电子照片会变形 ...
- iosxib 设置图片_修改xib 默认加载图片的路径
问题描述:项目组件化重构的时候,主工程的中xib 中引用了图片(图片是放在子工程中),但是不能显示. 问题原因:主工程Xib 加载的图片访问默认的是 main Bundle 中的资源,图片是子工程的F ...
- android 实现异步加载图片,Android中ImageView异步加载图片类
本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...
- 记录webpack使用问题,使用报错“UnhandledPromiseRejectionWarning,file-loader图片过大,无法加载图片,打包html文件报错TypeError
记录webpack使用报错 版本号问题 运行npm run build,报错 "UnhandledPromiseRejectionWarning: TypeError: this.getRe ...
- android 加载显示富文本——TextView显示富文本和WebView显示富文本,WebView显示图片适配屏幕宽度
TextView加载显示 添加依赖 implementation 'com.zzhoujay.richtext:richtext:3.0.8' implementation 'com.zzhoujay ...
- android bitmap显示图片,Android_07 Android中Bitmap加载图片
一:计算机表示图形的几种方式 二:Android加载大图片 原理: [1]获取手机分辨率 [2]获取图片分辨率 创建位图工厂的配置参数 获取图片宽高 [3]计算缩放比例 [4]显示缩放后的图片 示例代 ...
- java五子棋图片_java五子棋游戏如何加载图片
展开全部 直接上程序吧: //wuziqi.java import java.applet.Applet; import java.awt.Button; import java.awt.Checkb ...
- html 页面怎么加载富文本,UILabel加载html富文本
本文主要解决html标签之外文本属性设置 当APP里面有搜索的需求的时候,产品可能会要求关键字显示特殊颜色或者字体.其中一种可能性是服务器返回的数据是带有html标签的字符串,那么该怎么解决?当标签之 ...
最新文章
- 下一站,向冠军冲击!
- springboot学习笔记:12.解决springboot打成可执行jar在linux上启动慢的问题
- 项目初步验收需要检查事项
- VMware为全球数字化基础架构提供原生安全
- 自动驾驶专题研究报告:自动驾驶产业链全梳理
- react 显示当前时间_React 灵魂 23 问,你能答对几个?
- 深入了解什么是服务网格
- D.E.Shaw——高频统计套利交易获利41亿美元
- android 动态透明图片下载,动态透明壁纸软件下载-动态透明壁纸 安卓版v1.110-PC6安卓网...
- php快递按选择次数排序,php快递接口查询api 不限制次数
- Android获内外网IP地址工具类(Json解析读取)
- 只用CSS实现轮播图
- 生物信息学计算机等级,生物信息学考试题.doc
- ASAM让你减肥成为一种乐趣
- 基于51单片机智能手机锂电池充电器设计
- Java添加过滤器过滤xss入侵
- Gunicorn-配置详解
- 系统定时重启服务脚本案例
- Infortrend存储性能稳定,吸引南通市智慧交通监控大力采购
- 月二 周5 (前半写于周2)
热门文章
- 前台页面HTML5的Audio音频标签学习使用
- 从零开始实现一个简单的低代码编辑器
- 浅析位图索引(bitmap index)
- 山东理工大学-2022级-程序设计基础I-顺序结构
- 安卓日记本设计内容介绍_三年级学习写日记,先了解格式、内容和写作方向
- java简单小系统-双色球模拟开奖和输入自己的号码查看奖金
- 2021年中国互联网企业发展现状及发展趋势分析:互联网上市企业和互联网独角兽企业数量稳步增长 互联网企业集聚发展态势明显[图]
- P1607 [USACO09FEB]Fair Shuttle G
- 数据表的基础操作(六)数据的删除
- 万网绑定二级域名_万网主机怎么把二级域名绑定到子目录?