如何在Cocos2D iOS项目中添加字体并将其与CCLabelTTF一起使用?

RLH*_*RLH 11 fonts cocos2d-iphone ios cclabelttf

我需要在我的Cocos2D项目中使用自定义字体.我尝试了一些技巧,但Cocos2D不断报道:

无法加载字体XXX.ttf

为什么我不能使用Cocos2D使用自定义字体?


附加信息

这是一个问题+答案的帖子.这是一个让我整个早上都撞在墙上的问题.在阅读了众多网站的众多解决方案之后,我发现所有可用解决方案的合并都是解决这个问题的必要条件.

对某些人来说进一步困扰的是,你有时可以让你的应用程序在模拟器中完美地工作,但它不适用于你的iOS设备!此外,我还阅读了一些用户遇到相反问题的情况,其中设备将正常工作,而不是模拟器.我没有遇到后一个问题,但我相信遵循这些说明将有助于解决这个问题.

如果您遇到此问题,请自行解决,我错过了一步,请发表评论.我会更新我的帖子以包含任何其他详细信息.

RLH*_*RLH 36

以下是在项目中添加字体时应遵循的必要步骤.

  1. 将新的自定义字体安装到Font Book中.我假设你知道如何做到这一点,我将把这一步的进一步解释留给谷歌.

  2. 接下来,从Font Book中,找到刚安装的字体.选择字体,然后单击"字体簿"工具栏上的" 信息"按钮.

    在此输入图像描述

  3. 请注意PostScript name酒店.这必须是应用程序中字体文件的名称(不包括字体文件扩展名).

    注意: 我读过一些用户在使用名称包含空格的自定义字体时遇到问题.我不确定这只是用户的错误,因为我不确定PostScript名称是否甚至可以包含空格.无论如何,如果您的PostScript名称包含空格,您仍可能无法访问您的字体.

    如果这是您的问题,您可能想知道是否可以获得一个工具,可以让您更改字体的PostScript名称属性.在将文件添加到XCode项目之前,您需要执行此操作.否则,我认为您的自定义字体将在模拟器中运行,但不会在您的iOS设备上运行.

  4. 打开您的XCode项目,将您的字体从Finder拖放到项目资源文件夹中.在单击"添加文件"屏幕上的"完成"按钮之前,请务必选中复选框以将字体复制到目标组的文件夹.

    在此输入图像描述

  5. 将字体添加到资源文件夹后.验证字体的名称是否与步骤3中提到的PostScript名称相同.名称还必须包含任何特殊字符,如连字符或下划线.

    如果您的字体的名称与PostScript名称不同(不包括文件扩展名),您将无法从iOS设备访问此字体,因此请重命名项目中的文件.在我的示例字体的情况下,我需要将NES.ttf重命名为Nintendo-NES-Font.ttf

  6. 接下来,打开项目的info.plist文件.在plist designer屏幕中,右键单击plist的第一行,然后选择Add Row.这将打开一个关键选择框.选择"应用程序提供的字体"数组选项.

    在此输入图像描述

  7. plist中的新数组将自动添加一个空的"Item 0".将字符串属性设置为您的字体文件的名称.在我的示例中,属性值应为Nintendo-NES-Font.ttf.

  8. 接下来,转到XCode项目的Build Phases屏幕.从此处,验证您的字体文件是否位于" 复制包资源"组列表中.如果不是,请在项目目录中添加该文件.

而已!您的字体现在位于项目中,可供CClabelTTF标签使用.请记住,在创建标签时,请按PostScript名称指定字体.您不必包含".tt​​f"文件扩展名.下面的示例代码显示了如何使用自定义字体创建标签.

CCLabelTTF* label = [CCLabelTTF labelWithString:@"Your label text here." 
                                       fontName:@"Nintendo-NES-Font"
                                       fontSize:16];
Run Code Online (Sandbox Code Playgroud)

将标签作为子项添加到图层,它将使用您的自定义字体显示!

而且,这是我们的结果:

在此输入图像描述