在iOS应用程序中使用字体(ttf或odf) – 它们是否正常工作? (SourceSansPro-ExtraLight)

我在iOS应用程序中使用自定义字体的成功或失败。

我遵循这些步骤:

  1. 将字体拖入我的项目并复制到项目中
  2. 确保字体包含在构build阶段中
  3. 将字体名称(包括扩展名)添加到应用程序的plist文件中。 我确认我正在使用附件名称:SourceSansPro-ExtraLight.ttf
  4. 尝试使用字体

    self.daysLeftLabel.font = [UIFont fontWithName:@“SourceSansPro-ExtraLight”size:14];

但是,只使用通用系统字体。

如果我在我的代码中运行这个代码示例:

for (NSString* family in [UIFont familyNames]) { NSLog(@"%@", family); for (NSString* name in [UIFont fontNamesForFamilyName: family]) { NSLog(@" %@", name); } } 

Source Sans Pro字体家族不包括在内,所以有些东西是不行的。

事情是,我按照其他自定义TTF字体完全相同的顺序,他们按预期工作。 据我所知,我做的一切都是正确的 – 包括plist文件中经常错过的postscript名字和扩展名。

所以,我开始怀疑一些TTF字体是否与iOS兼容,而其他的则不是。 这是这种情况吗?

我也有同样的问题,你必须添加实际的文件名在info.plist文件,而不是字体名称。 在UILabel中定义字体时,你必须使用真正的字体名称。

这个问题的几个原因,你必须检查以下内容:

  1. 确保你勾选复制项目checkbox到destinaton的组文件夹
  2. 确保包含在目标中的字体。 您可以检查目标会员
  3. 检查您的文件是否存在于资源中 。 转到目标 – >构build阶段 – >复制包资源
  4. 应用程序plist中添加您的字体 在这里输入图像说明

  5. 查找字体名称 。 它可能与文件名不一样。 所以你可以使用for循环find字体名称。

    for(NSString * family in [UIFont familyNames]){NSLog(@“%@”,family);

     for (NSString* name in [UIFont fontNamesForFamilyName: family]) { NSLog(@" %@", name); } 

    }

    使用这个字体名称

    label.font = [UIFont fontWithName:@“font-name”size:20];