使用自定义字体而不包括在info.plist ios中

时间:2015-05-23 11:22:40

标签: ios fonts customization

在iOS中,如果我们想要使用自定义字体,我们必须在应用套件中加入font.ttf,并将font.ttf作为值添加到 info.plist中的字体键文件。

我想使用自定义字体,在设备中安装应用程序后,将从我的服务器下载其ttf文件。

1:是否可以在我的应用程序中使用该字体

2:如果是,我该如何使用该字体?

1 个答案:

答案 0 :(得分:7)

NSData *inData = /* your decrypted font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef fontRef = CGFontCreateWithDataProvider(provider);

if (!CTFontManagerRegisterGraphicsFont(fontRef, &error)) {
    CFStringRef errorDescription = CFErrorCopyDescription(error);
    NSLog(@"Failed to load font: %@", errorDescription);
    CFRelease(errorDescription);
} else {
    CFStringRef fontNameRef = CGFontCopyPostScriptName(fontRef);
    UIFont *font = [UIFont fontWithName:(__bridge NSString *)fontNameRef size:someSize];
    // Your UIFont is ready.

    CFRelease(fontNameRef);
}
CFRelease(fontRef);
CFRelease(provider);
  

您可以在应用执行期间随时以这种方式加载字体,并立即在UIFontUIWebView中使用(通过常规font-family CSS声明,不{{1}必要的)就像它已在@font-face中声明一样。

Source

注意:您应该UIAppFonts包含CoreText