美文网首页
iOS开发之UILabel加载HTML文本

iOS开发之UILabel加载HTML文本

作者: chasitu | 来源:发表于2022-06-09 11:21 被阅读0次

    今天要做一个图文混排的页面,在自定义的很多cell里面有一个需要动态高度的加载HTML文本的cell,做完之后在这里记录一下

    1. 初始化UILabel
      _contentLabel = [[UILabel alloc] init];
      _contentLabel.numberOfLines = 0;
      NSString *str = [NSString stringWithFormat:@"本教材采用以结构为纲,寓结构、功能于情景之中的编写原则,力求为学生以后的学习打下比较坚实的语言基础。在内容的编写与选取方面,突出实用性,力求场景的真实自然。本教材内容以学生的学习和生活为主,选取了校园及其他与学生日常生活密切相关的场景,以帮助学生尽快适应学校及日常生活。课文全部采用对话体,以满足学生用汉语进行交际的基本需求。<img style=\"width: %f; height: auto;\" src = \"https://gimg2.baidu.com/image_search/src=http%%3A%%2F%%2Fimg3.doubanio.com%%2Fview%%2Fgroup_topic%%2Fl%%2Fpublic%%2Fp458058160.jpg&refer=http%%3A%%2F%%2Fimg3.doubanio.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1656643727&t=e23faa2706d62506d4198fe10a727be2\"/>我们希望通过本书的学习,学习者可以打下良好而坚实的基础,积蓄充足的能量和后劲,实现在汉语的天空中自由飞翔的目标。",MainScreenWidth-30];
      _contentLabel.attributedText = [self getHtmlStringWithString:str];
      [self.contentView addSubview:_contentLabel];
    
    1. 为了方便简单封装了一下
    - (NSMutableAttributedString *)getHtmlStringWithString:(NSString *)string {
        NSDictionary *options = @{NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
                                  NSCharacterEncodingDocumentAttribute : @(NSUTF8StringEncoding)};
        NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
        NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
        // 设置段落格式
        NSMutableParagraphStyle *para = [[NSMutableParagraphStyle alloc] init];
        para.lineSpacing = 8;
        [attStr addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(0, attStr.length)];
        // 设置文本的Font
        [attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, attStr.length)];
        [attStr addAttribute:NSForegroundColorAttributeName value:ColorFromRGB(103, 103, 103, 1.0) range:NSMakeRange(0, attStr.length)];
        return attStr;
    }
    

    加载HTML文本的地方调用该方法拿到我们需要的富文本赋值给label就可以了

    相关文章

      网友评论

          本文标题:iOS开发之UILabel加载HTML文本

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