在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
中声明的一样,它可以立即在UIWebView
和font-family
中使用(通过常规@font-face
CSS声明,不需要UIAppFonts
)。Source
注意:您应该包括
CoreText
以便可以使用CTFontManagerRegisterGraphicsFont
。
关于ios - 使用自定义字体而不包含在info.plist ios中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412068/