我们基于乌尔都语的应用程序之一的字体是“Jameel Noori Nastaleeq Kasheeda”。我们应该在将其 HTML 文本转换为 NSString 之后显示内容(在 UILabel 上)。
为了将 HTML 转换为 NSString,我们实现了以下函数,
-(NSString *)styledHTMLwithHTML:(NSString *)HTML{
NSString *style = @"<meta charset=\"UTF-8\"><style> body { font-family: 'Jameel-Noori-Nastaleeq'; font-size: 20px; } b {font-family: 'Jameel-Noori-Nastaleeq'; }</style>";
return [NSString stringWithFormat:@"%@%@", style, HTML];
}
- (NSAttributedString *)attributedStringWithHTML:(NSString *)HTML {
NSDictionary *options = @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType };
return [[NSAttributedString alloc] initWithData:[HTML dataUsingEncoding:NSUTF16StringEncoding] options:options documentAttributes:NULL error:NULL];
}
然后我们设置 UILabel 的attributedText
属性以根据 HTML 文本获得正确格式的 NSString。
NSString *styledHtml = [self.novel.article styledHTMLwithHTML:self.novel.article];
NSAttributedString *attributedText = [self.novel.article attributedStringWithHTML:styledHtml];
self.articleView.articleContent.attributedText = attributedText;
此实现按照默认 iOS 字体(如Arial或Helvetica )的预期工作,但当我们应用自定义乌尔都语字体(即Nastaleeq )时,文本重叠。在这方面的任何帮助将不胜感激。