前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UILabel加载html文本

UILabel加载html文本

作者头像
用户1451823
发布2018-09-13 15:45:53
2.9K0
发布2018-09-13 15:45:53
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337802

最近项目更改需求,要用UILabel加载html文本(leader看了京东、天猫商城要实现其图文详情页面的效果)。笔者在看了那些商城的相应页面之后发现它们的实现方式并不是利用UILabel加载html文本的方法。本人感觉UILabel加载html文本并不好,现在有WKWebView是比较好用的。即使不用WKWebView也可以返回JSON数据,在客户端这边进行布局。之所以利用UILabel加载html文本,leader们是希望能够图文混排。既然会出现图片,那么用户就可能点击图片放大图片看些内容,然而利用UILabel加载的html文本显示的图片不能点击(目前笔者没有能点击UILabel上图片的方法)。

leader既然要求,那我这个“搬砖的”也只能埋头“搬砖”了。

代码:

NSMutableAttributedString * desStr = [NSMutableAttributedString alloc initWithData:str dataUsingEncoding:NSUnicodeStringEncoding options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:NULL error:nil];

_detailLbl.attributedText =desStr;

这里利用了UILabel上的富文本属性。这样做了之后还有一点很重要,那就是设置UILabel的高度。同样是自适应Label高度,让UILabel的高度根据html文本内容来设置UIlabel的高度。代码:

NSMutableAttributedString * desStr = [NSMutableAttributedString alloc initWithData:str dataUsingEncoding:NSUnicodeStringEncoding options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];

CGRect desRect = desStr boundingRectWithSize:CGSizeMake(WIDTH - 30 * IPHONE6_W_SCALE, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil;

CGFloat h = desRect.size.height;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年11月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档