最后我得到了答案.您可以检查拉姆答案(
Find attributes from attributed string that user typed),或者您可以简单地删除旧的字体属性,并使用以下代码应用新的字体.
NSDictionary *dictAttrib = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)};
NSMutableAttributedString *attrib = [[NSMutableAttributedString alloc]initWithData:[yourHTMLString dataUsingEncoding:NSUTF8StringEncoding] options:dictAttrib documentAttributes:nil error:nil];
[attrib beginEditing];
[attrib enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0,attrib.length) options:0 usingBlock:^(id value,NSRange range,BOOL *stop) {
if (value) {
UIFont *oldFont = (UIFont *)value;
NSLog(@"%@",oldFont.fontName);
/*----- Remove old font attribute -----*/
[attrib removeAttribute:NSFontAttributeName range:range];
//replace your font with new.
/*----- Add new font attribute -----*/
if ([oldFont.fontName isEqualToString:@"TimesNewRomanPSMT"])
[attrib addAttribute:NSFontAttributeName value:font1 range:range];
else if([oldFont.fontName isEqualToString:@"TimesNewRomanPS-BoldMT"])
[attrib addAttribute:NSFontAttributeName value:font2 range:range];
else if([oldFont.fontName isEqualToString:@"TimesNewRomanPS-ItalicMT"])
[attrib addAttribute:NSFontAttributeName value:font3 range:range];
else if([oldFont.fontName isEqualToString:@"TimesNewRomanPS-BoldItalicMT"])
[attrib addAttribute:NSFontAttributeName value:font4 range:range];
else
[attrib addAttribute:NSFontAttributeName value:font5 range:range];
}
}];
[attrib endEditing];
谢谢.也许会帮助你