UILabel加载html文本

最近项目更改需求,要用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;


你可能感兴趣的:(iOS开发)