UIFont自定义字体在设备上无法显示

3

我有一个与自定义字体相关的问题,具体来说是Tw Cen MT.ttf字体。

这与此处的问题相同:Custom font not showing on device, but does on simulator

除了给出的解决方案对我不起作用。

我已经按照应该做的做了:

  1. 将字体添加到Info.plist中
  2. 在构建阶段的复制包资源中添加字体。
  3. 使用名称而非文件名以编程方式使用字体。

它仍然无法工作。更有趣的是 - 当我列出可用字体时:

NSLog(@"%@", [UIFont familyNames]);

在模拟器上,它能够显示我的字体,但是在设备上却无法显示。我已经在新款iPad和iPhone 4上测试过,使用的是iOS 6系统。

有什么建议吗?


你应该确保不会出现与其他问题相同的情况,方法是打开 .app 包并检查字体。或者在应用程序中使用 [[NSBundle mainBundle] pathForResource:ofType:]。这样可以确保文件存在,再也不用担心了。 - Brendon
它可以在模拟器和设备环境下为我提供路径。 - Gricha
2个回答

6

一定要注意不要混淆姓氏和字体名称。这是我用来检查我的字体真实名称的代码。

NSArray *familyNames = [UIFont familyNames];
for (NSString *aFamilyName in familyNames) {
     NSArray *fontNames = [UIFont fontNamesForFamilyName:aFamilyName];
     for (NSString *aFontName in fontNames) {
        NSLog(@"%@", aFontName);
     }
}

谢谢 - 结果发现我的名字错了 - 正确的名字是TwCenMT-Regular。但是,当我在模拟器上测试时,它会列出,但在设备上运行时会消失。 - Gricha
好的 - 你对其他姓氏是正确的,但我在更正时拼错了。谢谢! - Gricha

1

确保您正确输入字体名称。模拟器不区分大小写,但手机会。


谢谢。我相信这是正确的。我知道通过名称加载图像的问题 :) - Gricha

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