我正在创建一个框架(“Cocoa Touch Static Library”),供其他iOS开发人员使用。现在我将按照步骤here在我的框架中使用自定义字体。步骤2在Info.plist文件中设置为UIAppFonts。但是在框架的情况下,Info.plist将由开发者提供)。所以我的框架用户只能在他们的应用程序的plist文件中设置"UIAppFonts“属性,或者有没有办法自己在框架中设置属性,这样我框架的每个用户都不需要设置"UIAppFonts”属性?请多多指教,谢谢。
发布于 2013-02-13 20:18:19
您可以提供一个plist示例,甚至可以编写一个实用程序,通过更新给定的属性列表来执行此设置,但是库的用户需要自己做一些事情,要么手动更新plist,要么使用您的实用程序。这是你无法避免的。
发布于 2014-02-24 07:28:31
正如你所说的,你不能从你的静态库中设置UIAppFonts。根据你要用它做什么,你可能不需要它。
作为一种变通办法,你可以在应用程序生命周期中的任何时候动态加载字体,例如在静态库中调用init/setup方法时。
请参阅Marco Arment的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);https://stackoverflow.com/questions/14853335
复制相似问题