3

Everytime I press a cell I want the cell to change image:

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
  {

      if ([[arrayOfImages objectAtIndex:indexPath.item] isEqual: @"dog.png"]) {
          [arrayOfImages replaceObjectAtIndex:indexPath.item withObject:@"cat.png"];

      } else if ([[arrayOfImages objectAtIndex:indexPath.item] isEqual: @"cat.png"]) {
          [arrayOfImages replaceObjectAtIndex:indexPath.item withObject:@"lion.png"];

      } else if ([[arrayOfImages objectAtIndex:indexPath.item] isEqual: @"lion.png"]) {
          [arrayOfImages replaceObjectAtIndex:indexPath.item withObject:@"dog.png"];

      }

    [myCollectionView reloadData];
  }

I press a cell and nothing happen, now if I press another cell, the previous one changes image and the same thing happens for every cell I press. The image that change is always the image of the previous cell. It's like it doesn't update the collectionView since I press again the collectionView.

Tortuga
  • 97
  • 3
  • 10

2 Answers2

9

You have implemented didDeselectItemAtIndexPath not didSelectItemAtIndexPath, thus when you select an other cell the cell you selected first gets deselected and triggers the didDeselectItemAtIndexPath.

rckoenes
  • 69,092
  • 8
  • 134
  • 166
0

wrong method used.it is didSelectItemAtIndexpath to be defined for the purpose not didDeselect

Lithu T.V
  • 19,955
  • 12
  • 56
  • 101