美文网首页
iOS UILabel 加载 HTML 文字

iOS UILabel 加载 HTML 文字

作者: Zaki丶 | 来源:发表于2018-11-28 15:47 被阅读10次

    记录一下之前项目加载 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)
                }
            }
    

    相关文章

      网友评论

          本文标题:iOS UILabel 加载 HTML 文字

          本文链接:https://www.haomeiwen.com/subject/edxzqqtx.html