UITableViewCell показывает смешанные шрифты - PullRequest
2 голосов
/ 22 марта 2012

По какой-то причине мой UITableViewCell показывает смесь шрифтов.Вот снимок экрана, который демонстрирует, что я имею в виду:

Mixed fonts on a single UITableViewCell

Обратите внимание, что последний номер в каждой строке - неправильный шрифт.Судя по моему тестированию, некоторые символы случайно запутались, поэтому не позволяйте факту, что это последние символы на этом скриншоте, сбивают вас с толку.

Вот мой код для установки шрифтов:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    UIImageView *iv;

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        [[cell textLabel] setFont: [UIFont fontWithName:@"BangBang" size: 36.0]];
        [[cell detailTextLabel] setFont: [UIFont fontWithName:@"BangBang" size: 32.0]];
        iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"woodTableRow~ipad.png"]];
    } else {        
        [[cell textLabel] setFont: [UIFont fontWithName:@"BangBang" size: 22.0]];
        [[cell detailTextLabel] setFont: [UIFont fontWithName:@"BangBang" size: 22.0]];
        iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"woodTableRow.png"]];
    }

    [cell setBackgroundView: iv];
    [iv release];

    cell.textLabel.textColor = [UIColor blackColor];
    [[cell textLabel] setShadowColor: [UIColor whiteColor]];
    [[cell textLabel] setShadowOffset: CGSizeMake(0, 1)];
    [[cell textLabel] setBackgroundColor: [UIColor clearColor]];

    cell.detailTextLabel.textColor = [UIColor blackColor];
    [[cell detailTextLabel] setShadowColor: [UIColor whiteColor]];
    [[cell detailTextLabel] setShadowOffset: CGSizeMake(0, 1)];
    [[cell detailTextLabel] setBackgroundColor: [UIColor clearColor]];

    switch (indexPath.row) {
        case ScoreRow:
            [[cell textLabel] setText: @"Score"];
            [[cell detailTextLabel] setText: @"1,234"];
            break;
        case TimeRow:
            [[cell textLabel] setText: @"Time"];
            [[cell detailTextLabel] setText: @"0:39"];
            break;
        default:
            [[cell textLabel] setText: @""];
            [[cell detailTextLabel] setText: @""];
            break;
    }
}

Это не имеет смысла для меня.Кто-нибудь может помочь?

Обновление:

Следует отметить, что я посмотрел на эти два вопроса StackOverFlow, но ни один из них не помог:

Шрифт UITableViewCell не изменяется

Что такое - [UITableViewDelegate willDisplayCell: forRowAtIndexPath:] для?

1 Ответ

2 голосов
/ 22 марта 2012

Код выглядит хорошо, поэтому я подозреваю, что это неполная реализация шрифта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...