簡體   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