您好我是目标C的新手。我正在将htmlString转换为NSMutableAttributedString。但当我更改NSMutableAttributedString的字体大小时,它会从我的文本中删除粗体字,请提供任何解决方案。
我的代码:
chi
任何帮助将不胜感激。
答案 0 :(得分:1)
试试这个。您需要使用复制字符串来显示更改的字符串。
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil ];
NSMutableAttributedString* copy = [attributedString mutableCopy];
[attributedString enumerateAttributesInRange:NSMakeRange(0, string.length) options:0 usingBlock:^(NSDictionary<NSString *,id> * _Nonnull attrs, NSRange range, BOOL * _Nonnull stop) {
UIFont* font = attrs[NSFontAttributeName];
if(font)
{
NSMutableDictionary* changedAttributes = [attrs mutableCopy];
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
changedAttributes[NSFontAttributeName] = [UIFont fontWithName:font.fontName size:16];
}
else{
changedAttributes[NSFontAttributeName] = [UIFont fontWithName:font.fontName size:12];
}
[copy setAttributes:changedAttributes range:range];
}
}];