Как да размените UIImage в клетка за изглед на таблица

Имам 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