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

jjp*_*jpp 1 fonts customization ios

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

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

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

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

Ren*_*ong 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);
Run Code Online (Sandbox Code Playgroud)

你可以在你的应用程序的执行过程中的任何时间加载字体,这样一来,它马上成为可用的UIFont和UIWebView(通过定期font-family的CSS声明,没有@font-face必要),就好像它在被宣布UIAppFonts.

资源

注意:您应该包括CoreText有CTFontManagerRegisterGraphicsFont可用.