后台返回的是html的字符串,需要按照web的样式展示出来,如果用WKWebView的话,不值当,用UILabel展示,同时UILabel的高度是随着html的的内容动态显示的,就用了下面的方法,动态计算UILabel的高度。
func getCountentH(str:String)->CGFloat {
let attrStr = try! NSMutableAttributedString(
data: (str.data(using: .unicode, allowLossyConversion: true)!),
options:[.documentType: NSAttributedString.DocumentType.html,
.characterEncoding: String.Encoding.utf8.rawValue],
documentAttributes: nil)
let contentHegiht = attrStr.boundingRect(with: CGSize(width: SCREEN_WHIDTH()-160.67, height: 1000), options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).height
return contentHegiht
}
SCREEN_WHIDTH()-160.67 为UILabel 的宽度,是写死的。同时动态获取高度和宽度,暂时还没有找到
网友评论