0

imageプロパティがそのように設定されているuiimageviewを持つtableviewcellがあります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 です。

新しい画像を追加する前に、画像ビューで以前の画像を削除するにはどうすればよいですか?

4

1 に答える 1

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;
于 2013-06-08T01:04:42.700 に答える