自定义字体不显示在设备上,但在模拟器上显示

时间:2012-04-07 00:15:34

标签: ios iphone cocoa-touch uifont custom-font

我一直在使用iOS中的自定义字体,除了自定义字体之外,大部分内容都不会在我的任何设备上显示。

  1. 我已将字体添加到项目文件的根目录。
  2. 将其添加到阵列下的info.plist文件或“应用程序提供的字体”
  3. 检查原始文件和我添加到info.plist文件的区分大小写是否相同。
  4. 使用[playMenuBtn.titleLabel setFont:[UIFont fontWithName:@"fontname" size:40]];使字体有效。
  5. 当我在模拟器中运行我的应用程序时,它看起来很好并且有效。但是,只要我在物理设备上运行它,它就会显示默认字体的默认大小。

    如果我使用:
    UIFont *font = [UIFont fontWithName:@"VINCASTENCIL" size:20]; NSLog(@"Font:%@", font);

    然后模拟器返回: 2012-04-07 01:10:41.544 AppName[47412:f803] Font:<UICFFont: 0x683e040> font-family: "VINCA STENCIL"; font-weight: normal; font-style: normal; font-size: 20px

    设备返回的位置: 2012-04-07 00:42:56.358 AppName[5079:707] Font:(null)

    我已经尝试了一切,包括尝试FontBook告诉我字体可以命名的所有名称。我知道它是免费的,并且没有许可证。

    任何帮助都会非常感激,因为它让我疯狂,我真的不想使用图像来解决这些问题,因为本地化会很痛苦!

2 个答案:

答案 0 :(得分:21)

是的,我刚刚设法让这个工作。我正在做的一切都是正确的但由于某种原因它没有将我的字体文件添加到'目标' - &gt; '构建阶段' - &gt; '复制捆绑资源'。通过手动将其添加到此列表,然后该字体将显示在设备上。

这是这个项目第二次没有在这里自动添加一个文件(之前已经用我添加的类完成了它,但它没有)所以我认为我的项目有问题,或者是Xcode中的错误。

感谢大家的建议和帮助。 :-D

答案 1 :(得分:0)

是的,按照上面提到的所有指示,你应该没事。需要注意的其他事项:区分大小写。在您的* .plist文件和Fonts provided by application中。模拟器可能会忽略大小写,但设备不会。例如,'Facebook'与'FaceBook'不同。 (这导致字体在模拟器中工作,但不是设备!)