如何在iOS下动态加载字体. (真的)

如何在iOS下动态加载字体. (真的),第1张

概述我已经看到这个问题多次回答,但我还没有看到真正的答案. 常见的“解决方案”是: >将该字体添加到应用程序包中,并将其注册到info.plist文件中. >使用自定义字体解析和渲染库(如Zynga的FontLabel). >不能完成 所以问题是:如何在iOS下动态加载字体? 加载字体“动态”是指加载应用程序编译时未知的任何给定字体. 字体可以轻松地从任何位置或任何字节流动态加载.参见文章: http 我已经看到这个问题多次回答,但我还没有看到真正的答案.
常见的“解决方案”是:

>将该字体添加到应用程序包中,并将其注册到info.pList文件中.
>使用自定义字体解析和渲染库(如Zynga的FontLabel).
>不能完成

所以问题是:如何在iOS下动态加载字体?
加载字体“动态”是指加载应用程序编译时未知的任何给定字体.

解决方法 字体可以轻松地从任何位置或任何字节流动态加载.参见文章: http://www.marco.org/2012/12/21/ios-dynamic-font-loading
NSData *inData = /* your 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);

>你不必把字体放在你的包中.
>您不必在info.pList中明确注册该字体.

也可以看看:
https://developer.apple.com/library/mac/#documentation/Carbon/Reference/CoreText_FontManager_Ref/Reference/reference.html#//apple_ref/doc/uid/TP40008278

https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGFont/Reference/reference.html#//apple_ref/c/func/CGFontCreateWithDataProvider

总结

以上是内存溢出为你收集整理的如何在iOS下动态加载字体. (真的)全部内容,希望文章能够帮你解决如何在iOS下动态加载字体. (真的)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111635.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存