+ (NSMutableAttributedString *)formatText:(NSString *)text {
NSData* data = [text dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *options = @{NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute :@(NSUTF8StringEncoding) };
NSError *error = nil;
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:&error];
if (error) {
NSLog(@"HTML 解析错误: %@", error);
return [[NSMutableAttributedString alloc] init];
}
// 创建可变富文本
NSMutableAttributedString *mutableAttributedString = [attributedString mutableCopy];
// 遍历整个富文本的范围,移除背景色属性
[mutableAttributedString enumerateAttribute:NSBackgroundColorAttributeName
inRange:NSMakeRange(0, mutableAttributedString.length)
options:0
usingBlock:^(id _Nullable value, NSRange range, BOOL * _Nonnull stop) {
if (value) {
[mutableAttributedString removeAttribute:NSBackgroundColorAttributeName range:range];
}
}];
// 设置字体
[mutableAttributedString beginEditing];
[mutableAttributedString enumerateAttribute:NSFontAttributeName
inRange:NSMakeRange(0, mutableAttributedString.length)
options:0
usingBlock:^(id _Nullable value, NSRange range, BOOL * _Nonnull stop) {
if (value) {
UIFont *newFont = [UIFont systemFontOfSize:14];
[mutableAttributedString addAttribute:NSFontAttributeName value:newFont range:range];
}
}];
[mutableAttributedString endEditing];
// 设置字体行间距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 1.5;
[mutableAttributedString addAttribute:NSParagraphStyleAttributeName
value:paragraphStyle
range:NSMakeRange(0, attributedString.length)];
// 设置文本颜色
[mutableAttributedString enumerateAttribute:NSBackgroundColorAttributeName
inRange:NSMakeRange(0, mutableAttributedString.length)
options:0
usingBlock:^(id _Nullable value, NSRange range, BOOL * _Nonnull stop) {
if (value) {
[mutableAttributedString removeAttribute:NSBackgroundColorAttributeName range:range];
}
}];
[mutableAttributedString addAttribute:NSForegroundColorAttributeName
value:hexColor(333333)
range:NSMakeRange(0, attributedString.length)];
return mutableAttributedString;
}
使用富文本解析html
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 参考:android 开发--抓取网页解析网页内容的若干方法(网络爬虫)(正则表达式) 网页有两种格式,一种是xm...
- 【知识点】 一. 数据的网络请求 【注】大多数APP都是依托于服务器的,由服务器负责数据的管理交互,分发,筛选等等...
- TFHpple是一个XML/HTML解析框架,我们可以用来解析从后台发送过来的HTML数据。如果要在项目中使用这个...
- 本项目由微信小程序开发论坛-WeAppDev http://weappdev.com/ 会员开发 原文地址: ht...