FreeType支持自2.5版以来的表情符号字符。我想通过FreeType渲染表情符号然后在OpenGL中使用它,所以这里不会使用UIKit API。但是,我不想,也不是我没有许可证,用我的应用程序发送“Apple Color Emoji.ttf”文件。
所以问题是: 有没有办法在iOS设备上加载系统表情符号字体文件? 是否有任何Objective-c或c / c ++ API可以访问系统表情符号字体文件?
答案 0 :(得分:5)
首先,让我们澄清一个误解。您不必使用UIKit在iOS上使用系统库渲染字体。您可以使用Core Text(具有常规旧C接口)将文本直接呈现到屏幕外缓冲区,并将该缓冲区用作OpenGL纹理。这将自动处理您自己正在做的非常大量的工作量:
字符编码
文字整形
换行
字距
字形替换
字体选择(粗体,斜体等)
等等
Core Text实际上是FreeType + HarfBuzz + Pango + ICU的替代品。我只想直接使用FreeType,如果我想做一些Core Text不能轻易做到的事情,比如将字形渲染成精灵表并使用它来绘制文本,或者如果我想跨平台共享代码。
现在,如果您确信自己花费额外的几周时间,那么您必须解析/System/Library/Fonts/CGFontCache.plist
文件以找到所需字体的位置。请参阅:Location of the fonts on the iPhone?