将HTML解析为NSAttributedText-如何设置字体?
我正在尝试获取以html格式格式化的文本片段,以在UITableViewCell中的iPhone上很好地显示。
到目前为止,我有这个:
NSError* error;NSString* source = @"<span>Nice</span> try, Phil";
NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
documentAttributes:nil error:&error];
这种作品。我得到一些加粗的“ Nice”文字!但是…它还将字体设置为Times
Roman!这不是我想要的字体。我想我需要在documentAttributes中设置一些内容,但是,我在任何地方都找不到任何示例。
回答:
弄清楚了。有点负担,也许不是最佳答案。
此代码将经历所有字体更改。我知道它使用的字体为“ Times New Roman”和“ Times New Roman
BoldMT”。但是无论如何,这都会找到粗体并让我重置它们。我也可以在设置时重置大小。
老实说,我希望/认为有一种方法可以在解析时进行设置,但是如果有的话,我找不到它。
NSRange range = (NSRange){0,[str length]}; [str enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
UIFont* currentFont = value;
UIFont *replacementFont = nil;
if ([currentFont.fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location != NSNotFound) {
replacementFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:25.0f];
} else {
replacementFont = [UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0f];
}
[str addAttribute:NSFontAttributeName value:replacementFont range:range];
}];
以上是 将HTML解析为NSAttributedText-如何设置字体? 的全部内容, 来源链接: utcz.com/qa/426089.html