最近接到一个需求,服务器传给客户端一段HTML字符串,可能带图片,但也可能返回一段纯文字,这样用webview显示的话就需要判断字符串内容,这样就不方便了。
这样只能使用NSAttributedString富文本加载
实例化
NSAttributedString * attrStr = [ [NSAttributedString alloc] initWithData:[html dataUsingEncoding: NSUnicodeStringEncoding] options: @{NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType} documentAttributes:nilerror: nil];
计算高度
CGRect rect = [ attrStr boundingRectWithSize: CGSizeMake( 320 , CGFLOAT_MAX) options : NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context : nil];
设置
[label setAttributedText : attrStr ];
这时候可能会有一个,里面的图片显示不全,或者图片严重变形,看了下应该是服务器返回的HTML未设置好,那我就需要在前面拼接一些字符
如果需要图片大于320就缩放,小于320就显示图片大小的话
这样就可以显示了