首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Cocoa Touch Static Library“中的自定义字体

"Cocoa Touch Static Library“中的自定义字体
EN

Stack Overflow用户
提问于 2013-02-13 20:13:44
回答 2查看 1.6K关注 0票数 2

我正在创建一个框架(“Cocoa Touch Static Library”),供其他iOS开发人员使用。现在我将按照步骤here在我的框架中使用自定义字体。步骤2在Info.plist文件中设置为UIAppFonts。但是在框架的情况下,Info.plist将由开发者提供)。所以我的框架用户只能在他们的应用程序的plist文件中设置"UIAppFonts“属性,或者有没有办法自己在框架中设置属性,这样我框架的每个用户都不需要设置"UIAppFonts”属性?请多多指教,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-13 20:18:19

您可以提供一个plist示例,甚至可以编写一个实用程序,通过更新给定的属性列表来执行此设置,但是库的用户需要自己做一些事情,要么手动更新plist,要么使用您的实用程序。这是你无法避免的。

票数 1
EN

Stack Overflow用户

发布于 2014-02-24 07:28:31

正如你所说的,你不能从你的静态库中设置UIAppFonts。根据你要用它做什么,你可能不需要它。

作为一种变通办法,你可以在应用程序生命周期中的任何时候动态加载字体,例如在静态库中调用init/setup方法时。

请参阅Marco Arment的this教程,代码如下:

代码语言:javascript
复制
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);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14853335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档