iPhone上字体的位置在哪里?

6

我正在一个iPhone项目中使用FreeType2库,如果可能的话,我想要从系统中简单地加载一个TTF文件。

FT_Library  library;
FT_Face face;
int error;


error = FT_Init_FreeType( &library );

if ( error == 0 )
     printf("Initialized FreeType2\r\n");   /* Prints */

error = FT_New_Face(library, "/System/Library/Fonts/Helvetica.ttf", 0, &face);

if ( error ==  FT_Err_Cannot_Open_Resource )
    printf("Font not found\r\n");         /* Prints */

看起来这个错误是因为找不到文件引起的。/System/Library/Fonts 不是字体位置吗?或者说,iPhone应用程序根本没有对该目录的读取权限。

谢谢!


另外,让大家知道一下。我已经将一个.ttf文件添加到我的项目中,以查看是否可以加载它,是的,它可以。我只是不确定系统字体是否被错误地指定,或者我没有访问权限。 - Kalen
我想使用FreeType,因为它具有可移植性。 - Kalen
2个回答

4
要查找设备上安装的字体,请加载字体清单(plist):
NSDictionary *cgFonts = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/Fonts/CGFontCache.plist"];

一旦你解析它,你会找到你的字体条目:

Helvetica = "/System/Library/Fonts/Cache/Helvetica.ttf";

不确定这个页面的准确性,但这就是我使用的参考资料。 - Kalen
您可以使用本文中列出的代码获取可用字体:http://excitabyte.wordpress.com/2010/03/24/the-font-family-names-available-on-iphone-os/ - Zack

3

这些字体文件要么在/System/Library/Fonts/目录下,要么在/System/Library/Fonts/Cache目录下。但是,我怀疑你可能没有访问这些目录所需的权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接