0

我们基于乌尔都语的应用程序之一的字体是“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 字体(如ArialHelvetica )的预期工作,但当我们应用自定义乌尔都语字体(即Nastaleeq )时,文本重叠。在这方面的任何帮助将不胜感激。

在此处输入图像描述

4

1 回答 1

0

你可以实现 webview 来加载你html string喜欢的,

  NSString* htmlString = @"your html string here";
  [webView loadHTMLString:htmlString baseURL: nil]; //webView  is `UIWebView` object
于 2016-09-04T20:17:02.953 回答