UILabel加载html并计算高度
2019-09-15 本文已影响0人
honey缘木鱼
设计需求图
需求: 每个列表都有对应的规则,这些规则是html ,需要得到html的高度计算出每个cell的高度。
一.先把HTMLString 转化为NSAttributedString
- (NSAttributedString *)attributedStringWithHTMLString:(NSString *)htmlString
{
NSDictionary *options = @{ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute :@(NSUTF8StringEncoding) };
NSData *data = [htmlString dataUsingEncoding:NSUTF8StringEncoding];
return [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
}
二.计算HTMLString高度
方法一.
CGFloat h = [_tipLabel.attributedText boundingRectWithSize:CGSizeMake(_bgView.width-30, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size.height;
方法二.
CGFloat h1 = [_tipLabel sizeThatFits:CGSizeMake(_bgView.width-30,CGFLOAT_MAX)].height;
注意:
UILabel要设置换行,_tipLabel.numberOfLines = 0;