繁体   English   中英

iOS:自定义字体Robot-Bold(不工作)

[英]iOS: Custom Font Robot-Bold (not working)

我有一个tableview,其中包含带标签的自定义单元格。 我想将此标签的字体更改为“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;
}

有时,当您将ttf文件添加到XCode项目时,它将不会添加到您的目标。 这意味着它不会包含在已编译的应用程序包中。

在XCodes Project Navigator中选择字体文件,然后打开文件检查器“实用程序”窗格(Cmd-Option-0)。 您应该在那里看到“目标成员资格”组,并且项目的目标应该选中复选框。 如果没有检查,请再试一次。

如果你把它添加到plist和project中,检查字体系列名称是否与文件名完全相同,它们有时会有所不同(可能是'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);
}

如果你做了以上所有但仍然无法正常工作。 还有一个可能导致这种情况的XCODE错误 - 如果您从未在storyboard / xib上使用此自定义字体 - 使用此字体添加隐藏标签(来自Interface Builder),然后突然它将以编程方式识别它...

-Xcode 7.3.1 - 仍然有这个bug

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM