iOS显示HTML文本

作者: CoderHG | 来源:发表于2017-05-10 17:50 被阅读447次

    在开发中难免会出现显示HTML文本的情况,但是需要前端做一下处理,再显示.只需要写一个NSString的分类即可,方法如下:

    /**
     * 返回H5标签转义属性
     */
    - (NSString*)htmlText {
        
        NSDictionary* options = @{
                                  NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType
                                  };
        
        NSMutableAttributedString* attrs = [[NSMutableAttributedString alloc] initWithData:[self dataUsingEncoding:NSUnicodeStringEncoding] options:options documentAttributes:nil error:nil];
        
        return attrs.string;
    }
    

    比如,我想要显示如下文本:

        // 即将显示的文本
        NSString* htmlTagText = @"有一本书叫“亮剑”";
        
        // 实现到UIlabel上
        self.htmlLabel.text = htmlTagText;
    

    效果如下:

    不想要的结果

    这不是我们想要的结果,将代码换成这样:

        // 即将显示的文本
        NSString* htmlTagText = @"有一本书叫“亮剑”";
        
        // 解析文本
        htmlTagText = [htmlTagText htmlText];
        
        // 实现到UIlabel上
        self.htmlLabel.text = htmlTagText;
    

    结果如下:

    完美

    Well Done!

    谢谢~

    相关文章

      网友评论

      • 时间节点丶星图:不行,这样不够完善,最好是封装一下
        CoderHG:谢谢提醒! 应该还能封装.期待你的分享.
      • 背包客_5642:在哪里会被用到,感觉不常见
        CoderHG:的确不常见,一般都是从接口获取文本显示的时候用到.比如对一个人物的介绍,有的时候接口会直接把带有html标签的文本下发了,那就只能在app端处理了.

      本文标题:iOS显示HTML文本

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