记录一下之前项目加载 HTML 文字的一些问题
HTML 文字加载 大家在其它的 blog 里都有方法实现,我就不赘述了
遇到了一个问题就是 需要将文本文字按大小显示
需求是这样的:
image.png之前代码中显示 HTML 文字是先加载 HTML 文字,然后再设置的 font 大小,所以字体大小是一样的
这样显示的:
image.png
但是这样无法满足产品的需求,所以要将需要标注的为小号的字体利用 html 文本 <small>##</small>标注起来, 然后再将该段所有 HTML 文本使用 html 字体样式<font size='4'>##</font>标注起来.
最重要的一步,将本地设置字体大小的代码删除掉. 就可以按照产品需求显示了
image.png
let contentText = "<font color='#E21A43'><big>请确认用户是老人或小孩,一经设置不可修改</big></font><br/><br/>设置后,用户仅需支付本单半价费用<br/><br/><font color='#898989'><small>注:小孩可以门店存包柜第三格高度以下为准</small></font>"
contentLabel.font = UIFont.systemFont(ofSize: kRemindTextFont)
if contentText.contains("</font>") {
do{
if contentText.contains("</small>") || contentText.contains("</big>") {
let text = "<font size='4'>" + contentText + "</font>"
contentLabel.attributedText = try NSAttributedString(data: text.data(using: String.Encoding.unicode, allowLossyConversion: true)!, options: [.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil)
} else {
contentLabel.attributedText = try NSAttributedString(data: contentText.data(using: String.Encoding.unicode, allowLossyConversion: true)!, options: [.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil)
contentLabel.font = UIFont.systemFont(ofSize: kRemindTextFont)
}
}catch let error as NSError {
print(error.localizedDescription)
}
}
网友评论