【问题标题】:Using fonts (ttf or odf) in iOS applications -- is it a hit or miss whether they work? (SourceSansPro-ExtraLight)在 iOS 应用程序中使用字体(ttf 或 odf)——它们是否有效? (SourceSansPro-ExtraLight)
【发布时间】:2013-12-23 08:22:26
【问题描述】:

我在 iOS 应用中使用自定义字体取得了成功。

我遵循以下步骤:

  1. 将字体拖入我的项目并复制到项目中
  2. 确保字体包含在构建阶段中
  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 需要引用实际的文件名,而不是字体名。大小写在文件名中很重要。

标签: ios fonts


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    1. 确保选中将项目复制到目标组文件夹的复选框
    2. 确保字体包含在目标中。您可以查看目标会员
    3. 检查您的文件是否存在于捆绑资源中。转到目标->构建阶段->复制捆绑资源
    4. 应用程序列表中添加您的字体

    5. 查找字体名称。它可能与文件名不同。因此,您可以使用 for 循环来查找字体名称。

      for (NSString* family in [UIFont familyNames]) { NSLog(@"%@", 家庭);

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

      }

      将此字体名称用作

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

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      相关资源
      最近更新 更多