如何获得UIWebView相当于iOS 8系统的字体?

时间:2015-08-20 19:28:38

标签: ios ios7 fonts ios8 uiwebview

我试图在iOS系统当前使用的iOS上的UIWebView中使用相同的字体。

这意味着我想使用与我相同的字体:

UIFontDescriptor *fd;
fd = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
UIFont *font = [UIFont fontWithDescriptor:fd size:0];

SO上有很多答案(iPhone Development - Setting UIWebView fontUsing custom font in a UIWebViewHow to change UIWebView default fontHow to set custom font in UIWebView?),解释了如何将UIFont的familyName或fontName嵌入到html的样式属性中,通过这样做:

NSString *fontStyle, *htmlString = @"test";
fontStyle = [NSString stringWithFormat:@"font-family:%@;font-size:%d", font.familyName, (int)font.pointSize];
htmlString = NSString stringWithFormat:@"<span style=\"%@\">%@</span>", fontStyle, htmlString];

但是现在这些系统字体名称现在不再适用于iOS 7和8:

font.fontName: .HelveticaNeueInterface-Regular
font.familyName: .Helvetica Neue Interface

在具有“font-family”属性的UIWebView中使用这些名称时,文本将以默认字体(带有衬线,当然不是新的iOS系统字体)呈现。删除前导期也没有帮助。

那么,我现在如何将系统的字体翻译成Web工具包正确解释的名称?

请理解我正在寻找通用解决方案,而不是简单地寻找我可以手动插入到html样式属性中的iOS 7/8名称。

2 个答案:

答案 0 :(得分:2)

这篇文章怎么样:来自Craig Hockenberry的http://furbo.org/2015/07/09/i-left-my-system-fonts-in-san-francisco/

答案 1 :(得分:0)

您是否通过附加字体文件尝试过Helvetica或旧金山?