您是否知道我可以如何动态地将自定义字体添加到iOS而无需在编译时将其添加到项目中?
我正在查看在应用程序运行时下载字体的情况,然后动态加载以供使用。
如果可以,我想在加载后将其用作UIFont。
我已经搜索了一些可能性,并发现我可以使用CoreText加载字体:
- (CTFontRef)newCustomFontWithFileName:(NSString *)fontFileName
ofType:(NSString *)type
andSize:(float)pointSize
{
NSString *fontPath = [[NSBundle mainBundle] pathForResource:fontFileName ofType:type];
NSData *data = [[NSData alloc] initWithContentsOfFile:fontPath];
CGDataProviderRef fontProvider = CGDataProviderCreateWithCFData((CFDataRef)data);
[data release];
CGFontRef cgFont = CGFontCreateWithDataProvider(fontProvider);
CGDataProviderRelease(fontProvider);
CTFontRef font = CTFontCreateWithGraphicsFont(cgFont, pointSize, NULL, NULL);
CGFontRelease(cgFont);
return font;
}
然而,在这样做之后,是否可以将CTFontRef转换为UIFont以在整个应用程序中使用?
让我知道你们知道/想的是什么! :)
答案 0 :(得分:0)
从iOS 5.1开始,没有公共API可以从UIFont
或CGFont
创建CTFont
。你运气不好。 :(
如果您希望他们为此添加API,请在http://bugreport.apple.com打开功能请求。