如何更改iOS中属性字符串的字体?
How change the font of attributed string in iOS?
我在 label.I 上添加了属性字符串,正在显示 html 文本,效果很好,但默认情况下它总是显示 Times new roman family。请告诉我如何更改文本系列。
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[inst.desc dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
你可以这样做:
NSDictionary *attrDict = @{
NSFontAttributeName : [UIFont fontWithName:Arial size:16.0],
NSForegroundColorAttributeName : [UIColor redColor]
};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"string" attributes:attrDict];
试试这个:
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[inst.desc dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
NSMutableAttributedString *newString = [[NSMutableAttributedString alloc] initWithAttributedString:attributedString];
NSRange range = (NSRange){0,[newString length]};
[newString enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
UIFont *replacementFont = [UIFont fontWithName:@"Palatino-Roman" size:14.0];
[newString addAttribute:NSFontAttributeName value:replacementFont range:range];
}];
self.label.attributedText = newString;
我在 label.I 上添加了属性字符串,正在显示 html 文本,效果很好,但默认情况下它总是显示 Times new roman family。请告诉我如何更改文本系列。
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[inst.desc dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
你可以这样做:
NSDictionary *attrDict = @{
NSFontAttributeName : [UIFont fontWithName:Arial size:16.0],
NSForegroundColorAttributeName : [UIColor redColor]
};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"string" attributes:attrDict];
试试这个:
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[inst.desc dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
NSMutableAttributedString *newString = [[NSMutableAttributedString alloc] initWithAttributedString:attributedString];
NSRange range = (NSRange){0,[newString length]};
[newString enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
UIFont *replacementFont = [UIFont fontWithName:@"Palatino-Roman" size:14.0];
[newString addAttribute:NSFontAttributeName value:replacementFont range:range];
}];
self.label.attributedText = newString;