Шрифт UITableViewCell, не изменяющийся

Я пытаюсь настроить шрифт a UITableViewCell использование следующего кода для того, когда tableview заполняется.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *MyIdentifier = @"MyIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
    }

    // Set up the cell  
    int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];   
    NSString *temp = [[NSString alloc] initWithString:[[stories objectAtIndex: storyIndex] objectForKey: @"title"]];
    cell.textLabel.text = temp;
    [[cell textLabel] setTextColor:[UIColor colorWithRed:154.0/255.0 green:14.0/255.0 blue:2.0/255.0 alpha:1]];
    [[cell textLabel] setFont:[UIFont systemFontOfSize:12.0]];  

    return cell;
}

Ни за что в жизни я не знаю, почему это не изменит шрифт! Также вышеупомянутый код хорошо работает, если я трудно кодирую, в каком текст ячейки - такой как cell.textLabel.text = @"TEST";

Какие-либо предложения?Спасибо!

16
задан Shi XiuFeng 1 July 2015 в 12:00
поделиться

1 ответ

Во-первых, вы должны автоматически разблокировать ячейку. У вас сейчас как сумасшедшая утечка памяти.

Во-вторых, вам следует обновить шрифт в tableView: willDisplayCellForRow: atIndexPath: . Если вы используете стандартное табличное представление, оно внесет изменения в ваши ячейки (в случайное время), и вам нужно будет сделать такие вещи, как изменение шрифта, цвета фона и т. Д. В tableView: willDisplayCellForRow: atIndexPath: вместо метода источника данных.

См. также эту ветку: Что такое - [UITableViewDelegate willDisplayCell: forRowAtIndexPath:] для?

29
ответ дан 30 November 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: