문제

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.

도움이 되었습니까?

해결책

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

다른 팁

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top