Как поменять UIImage в tableviewcell

У меня есть tableviewcell с uiimageview, свойство изображения которого установлено так в cellForRowAtIndexPath:

cell.imageView.image = [UIImage imageNamed:@"image.jpg"];

Теперь в didSelectRow... я пытаюсь поменять его на выбранную вспомогательную часть, например, внутри switch(indexPath.row) :

case 1:
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    if (driveThruSelected == FALSE) {
        cell.imageView.image = nil;
        cell.imageView.image = [UIImage imageNamed:@"image2.jpg"];
    } else {
        cell.imageView.image = nil;
        cell.imageView.image = [UIImage imageNamed:@"image.jpg"];

    }
    break;

Ячейка загружает правильное начальное изображение, первое нажатие действительно представляет новый image2.jpg, предположительно поверх старого. Но когда я снова нажимаю на нее, ячейка выделяется синим цветом, показывая, что она была нажата, но изображение (по крайней мере, сверху) по-прежнему остается image2.jpg.

Как удалить предыдущее изображение в представлении изображений перед добавлением нового?


person marciokoko    schedule 07.06.2013    source источник
comment
вы переключаете driveThruSelected?   -  person wattson12    schedule 08.06.2013


Ответы (1)


Я предполагаю, что вы устанавливаете значение FALSE при первой загрузке страницы/таблицы. Я полагаю, что ваш отсутствующий код - это переключение driveThruSelected, т.е.

case 1:
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    if (driveThruSelected == FALSE) {
        //set it to true
        driveThruSelected = TRUE;
        cell.imageView.image = nil;
        cell.imageView.image = [UIImage imageNamed:@"image2.jpg"];
    } else {
        //set it to false
        driveThruSelected = FALSE;
        cell.imageView.image = nil;
        cell.imageView.image = [UIImage imageNamed:@"image.jpg"];

    }
    break;
person Sam B    schedule 08.06.2013