iOS:自定义字体Robot-Bold(无法使用)

7
我有一个包含自定义单元格标签的表视图。我想将此标签的字体更改为“Roboto-Bold”。但是它没有起作用(仍然是相同的默认字体)。我到目前为止所做的事情:
  • 下载了“Roboto-Bold.ttf”
  • 将字体添加到我的项目中
  • 修改info.plist,添加:应用程序提供的字体,item0 = Roboto-Bold.ttf
  • 添加了这段代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    EventOptionCell *cell = (EventOptionCell *)[tableView dequeueReusableCellWithIdentifier:@"EventOptionCell"];

    switch (indexPath.row) {
        case 0:
            cell.optionLabel.text = @"TEST NEW FONT";
            cell.optionLabel.font = [UIFont fontWithName:@"Roboto-Bold" size:20];
            cell.imageView.image = [UIImage imageNamed:@"icon-test.png"];
            break;

        default:
            break;
    }

    return cell;
}

你检查过字体是否也添加到了目标中了吗? - Cornelius
2
在XCodes项目导航器中选择字体文件,然后打开文件检查器实用程序窗格(Cmd-Option-0)。您应该在那里看到一个名为“目标成员”的组,并且您的项目的目标应该被选中复选框。如果没有,请勾选它并重试。 - Cornelius
完美!!成功了 :) 谢谢!!! - Lücks
我也遇到了这个问题,我已经检查了目标成员资格,它们都被打上了勾,并且我能够在复制捆绑资源中看到它们。 我正在使用Xcode 7和iOS 9。 请建议出错的原因。 - Dhanunjay Kumar
谢谢您的提问。我也遇到了同样的问题。我没有在plist中添加字体。添加后,它正常工作了。 - S P Balu Kommuri
显示剩余2条评论
3个回答

8
有时,将ttf文件添加到XCode项目中后,它不会被添加到你的目标中。这意味着它不会包含在编译后的应用程序包中。
在XCode项目导航器中选择字体文件,然后打开文件检查器实用程序窗格(Cmd-Option-0)。你应该看到一个“目标成员资格”组,在那里你的项目目标应该有复选框被勾选。如果没有,请勾选并重试。

我在检查了目标成员资格后仍然遇到了问题。请提供建议。 - Dhanunjay Kumar
1
确保将字体正确添加到您的Info.plist文件中。同时,确保您正在使用正确的字体名称。检查字体是否已正确添加到项目的好方法是在Interface Builder中将标签设置为自定义字体,并查看字体选择器。 - Cornelius
1
是的,我昨天已经重新检查过了,它运行良好。谢谢回复。 - Dhanunjay Kumar

2
如果你完成了上述步骤,但仍然不能正常工作。 还有一个可能导致这种情况的XCODE错误-如果你从未在storyboard / xib中使用过此自定义字体,请添加一个以此字体为隐藏标签(从Interface Builder)然后它将突然被程序识别... -Xcode 7.3.1-仍然存在这个错误

偶尔看到新的苹果bug真是让人耳目一新。不知道我能不能问一下你是怎么找到这个解决方案的? - Abdul91

1
如果您将其添加到plist和项目中,请检查字体系列名称是否与文件名完全相同,它们有时会略有不同(可能是“Robot Bold”或类似)...
可能有用的片段(来自如何检查iOS版本中是否可用字体?
NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++) {
    NSString *fontFamily = [fontFamilies objectAtIndex:i];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
    NSLog (@"%@: %@", fontFamily, fontNames);
}

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