2

编辑:我想通了!答案贴在下面。谢谢JSD!

我一定遗漏了一些东西,因为我认为这是一个相当简单的过程。我已经将字体复制到我的项目文件夹中。我正在尝试使用以下代码在表格单元格上的 UILabel 中使用字体:

UILabel *cellTitle = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 40)];
cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Black" size:50];
[cell.contentView addSubview:cellTitle];

它似乎不起作用。文本出现但不使用自定义字体。我错过了什么?

编辑:显然,如果我改用此代码

cellTitle.font = [UIFont fontWithName:@"Source Sans Pro" size:50];

这可行,但它只使用我的 pList 文件数组中的最后一个字体,这只是字体的常规版本。以前有人遇到过这个问题吗?

这些代码都不起作用:

cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Bold" size:50];
cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Regular" size:50];

这是我字体书中的字体:

在此处输入图像描述

PList 文件:

在此处输入图像描述

4

4 回答 4

2

确保将字体名称添加到info.plist文件中

于 2013-07-30T16:57:37.593 回答
1

将字体添加到您的项目中。然后,在您的 info.plist 文件中,添加一个名为Fonts provided by application数组类型的部分,并且每种字体都列在自己的行中... Item0、Item1 等。

当你在代码中加载字体时,你会像往常一样加载它: [myUILabel setFont:[UIFont fontWithName:@"MyFontname" size:14]];. 通常您将使用后记名称,可以使用 Mac 上的 FontBook 应用程序找到该名称。

于 2013-07-30T17:09:15.193 回答
1

根据我对自定义字体的使用,您的 plist 字体名称应该与字体在字体书中的显示方式相匹配,这也应该与fontWithName方法匹配。在你的情况下,我希望Source Sans Pro Black在这两个地方都能看到,特别Source Sans Pro Black.otf是在你的 plist 和cellTitle.font = [UIFont fontWithName:@"Source Sans Pro Black" size:50];你的代码中。

于 2013-07-30T17:25:42.943 回答
1

我刚刚开始工作!!!感谢 JSD 引导我朝着正确的方向前进。显然,问题在于 XCode 如何重命名同一家族中的字体变体。

使用字体书名称不起作用!!!

您实际上必须查看 Xcode 如何命名字体。为此,您必须运行日志命令:

NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Source Sans Pro"]);

给了我这个:

在此处输入图像描述

此代码有效:

cellTitle.font = [UIFont fontWithName:@"SourceSansPro-Black" size:50];
于 2013-07-30T18:12:03.300 回答