最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

解决UITextView,UILabel加载html时src无法显示本地图片的问题

扩展 太平洋学习网 浏览 评论

在ios聊天界面开发中,由于本公司的软件有电脑版和手机app版,因此封装的聊天内容数据是html格式的,所以只能使用UITextView或者UILabel这两个类来做数据的处理,为了提高ios聊天页面的加载效率或者断网的时候能够正常显示图片信息,就需要做ios图片缓存。

这时候我就遇到了一个问题,当img标签中src是网络图片地址时,UITextView和UILabel都是可以正常显示图片的,如果将图片地址换成本地缓存地址的时候,图片就不能显示了,即使cache缓存路径正确也没有用,如这种情况。

<p><IMG width='120px' height='80px;' src='/Users/sinfor/Library/Developer/CoreSimulator/Devices/6CEB5028-153B-42B3-9E63-6428A62EF22C/data/Containers/Data/Application/A577EB6E-3DD3-401C-8E03-D09CDFA8BF7B/Library/Caches/images/timg.jpg'/>哈哈</p>

我各种debug都没有用,后来把src对应的图片地址复制到浏览器中,发现浏览器前面自动在src图片地址前面加入了“ file://  ”,于是我受到了启发,将上面的标签改成了这样,果然图片就正常加载出来了,如下。

<p><IMG width='120px' height='80px;' src='file:///Users/sinfor/Library/Developer/CoreSimulator/Devices/6CEB5028-153B-42B3-9E63-6428A62EF22C/data/Containers/Data/Application/A577EB6E-3DD3-401C-8E03-D09CDFA8BF7B/Library/Caches/images/timg.jpg'/>哈哈</p>

下面是UITextView和UILabel加载html的方法,也贴出来。

//UITextView和UILabel两个方法二选一就可以了

NSString *html = @"<p><IMG width='120px' height='80px;' src='file:///Users/sinfor/Desktop/timg.jpg'/>哈哈</p>";

//UITextView加载html方法    
UITextView *text = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, 130, 90)];
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
text.attributedText = attributedString;
[self.view addSubview:text];

//UILabel加载html方法   
UILabel * myLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 80, 130, 90)];
NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
myLabel.attributedText = attrStr;
[self.view addSubview:myLabel];


来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/kuozhan/90.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论