Изменение цвета фона на пользовательском UITableViewCell не будет отображаться

Я пытаюсь изменить цвет фона пользовательской ячейки при нажатии. Вот мой код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
    if (...condition...) {
        cell.backgroundColor = [UIColor clearColor];
    } else {
        cell.backgroundColor = [UIColor yellowColor];
    }
}

Теперь я сделал отладку, и cell.backgroundColor = [UIColor clearColor]; выполняется, но ячейка остается желтой!!! Это происходит только с некоторыми ячейками (желтыми и повторно используемыми).

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


person Slaymaan    schedule 01.06.2011    source источник


Ответы (3)


Я заставил его работать. Пришлось использовать aCell.contentView.backgroundColor вместо aCell.backgroundColor

Это помогло мне.

person Slaymaan    schedule 02.06.2011

Единственный способ сохранить изменения — сохранить их где-нибудь и использовать при настройке ячейки в методе tableView:cellForRowAtIndexPath:. Итак, поддерживайте набор ячеек с желтым фоном и при настройке ячейки проверяйте, входит ли она в набор. Если да, назначьте ему желтый фон, а если нет, установите чистый цвет.

person Deepak Danduprolu    schedule 01.06.2011

Измените цвет фона ячейки в пользовательском классе ячеек, где у нас есть метод setbackground:.

person Vinod    schedule 01.06.2011