无法找到自定义字体 - iOS

时间:2012-01-22 18:07:42

标签: ios iphone fonts

我添加了一个自定义字体 - 我从网上下载的字体。它是TTF格式,可以在我的Mac上的其他程序上使用。 (已成功将其添加到字体书并用于烟花)。

我已将密钥添加到信息.plist中,但字体似乎无效。

当我NSLog字体时它是null,所以我假设它没有找到它。

TTF名为LONDON __。TTF,但名称为伦敦字体。

我应该使用什么作为字体并添加到info.plist才能使用?

由于

应用程序字体资源路径= LONDON __。TTF

NSLog(@"%@",[UIFont fontWithName:@"London font" size:22]);

NSLog(@"%@",[UIFont fontWithName:@"LONDON__.TTF" size:22]);

他们都返回Null。

虽然该文件名为LONDON __。TTF,但字体在Font Book中显示为每个人。这是问题吗?

3 个答案:

答案 0 :(得分:37)

查看所有可用字体

<强>目标-C:

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

<强>夫特:

for family: String in UIFont.familyNames() {
    print("%@", family)
    for name: String in UIFont.fontNamesForFamilyName(family) {
        print("  %@", name)
    }
}

..如果不存在,请重新安装

  1. .ttf文件复制到项目中(即将其拖到项目导航器中的资源文件夹中)。

  2. Info.plist中添加一个带有Fonts provided by application键且带有数组类型的条目。作为第0项,添加与字体文件名对应的字符串值(例如OpenSans-ExtraBoldItalic.ttf)。

  3. 确保字体文件包含在项目设置下的copy bundle resources列表中。

答案 1 :(得分:6)

您需要确保字体文件包含在项目设置下的copy bundle resources列表中。我的字体不会显示在[UIFont familyNames]中,直到我在此处添加它,因为它在添加到项目时不会自动包含。

答案 2 :(得分:1)

这两个名字听起来都错了。假设您已将其正确添加到plist中,请使用类似

的内容
NSLog(@"Fonts: %@", [UIFont familyNames]);

查看其内部名称是什么。

顺便说一下,请确保字体的许可允许嵌入。许多商业字体都没有。