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

标签 ios fonts customization

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

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

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

2:如果可以,该如何使用该字体?

最佳答案

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);

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

Source

注意:您应该包括CoreText以便可以使用CTFontManagerRegisterGraphicsFont

关于ios - 使用自定义字体而不包含在info.plist ios中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412068/

相关文章:

editor - VSCode : Prevent split editor to open same file left & right

android - android中的自定义键盘 View

ios - 如何使用 Swift 3 修剪字符串

ios - 在 AppDelegate 中,主 UIWindow 是如何实例化的?

html - IcoMoon 字体加倍

css - 使用图标字体 (Font Awesome) 看起来有点模糊而且太粗

ios - 如何自定义 UIPickerView 的高度?

ios - 使用observeSingleEvent/snapshot,如何编写一行代码来检查用户是否在过去24小时内向数据库添加了子条目?

ios - 有没有办法在应用程序已经运行时使用 Branch 深层链接?

c# - 自定义字体 Monodevelop