回答
你可以提供一个例子的plist甚至写通过更新给定的属性列表执行此设置实用程序,但库的用户需要做一些事情本身,无论是手动或使用您的程序更新的plist。你无法避免这一点。
正如你所说,你不能从你的静态库中设置UIAppFonts。根据你将要使用它,你可能不需要它。
正如你可以动态地在任何时候应用程序的生命周期中在静态库中一些早期称作init /设置方法时加载的字体,例如解决方法。
见this教程由马科·阿门特,下面提供的代码:
NSData *inData = /* your decrypted font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
你能告诉我这是inData吗?是它的font.ttf或otf文件数据或其他任何东西。 – ManiaChamp 2014-04-02 12:20:44
我没有我的代码在我面前,但它应该是从实际的ttf/otf文件读取的字体数据,是的。你尝试过,失败了吗? – 2014-04-08 10:09:47
这可以在我们的可可触摸框架内美妙地工作。加载这样的字体文件:的NSString *的FontPath = [[一个NSBundle bundleForClass:[ANYClassInYourFramework类]] pathForResource:@ “fontfilename” ofType:@ “TTF”]; NSData * fontData = [NSData dataWithContentsOfFile:fontPath]; – 2014-12-10 12:21:35
非常感谢你@ H2CO3您的快速回答,我会要求开发者添加“UIAppFonts”在他们的plist文件设置。 – 2013-02-13 13:02:44