UICollectionView didselect не работает


Каждый раз, когда я нажимаю на ячейку, Я хочу, чтобы ячейка меняла Изображение:

- (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];
  }
Я нажимаю на ячейку, и ничего не происходит, теперь, если я нажимаю на другую ячейку, предыдущая меняет изображение, и то же самое происходит для каждой ячейки, которую я нажимаю. Образ, который изменяется, всегда является образом предыдущей ячейки. Это похоже на то, что он не обновляет collectionView, так как я снова нажимаю collectionView.
2 3

2 ответа:

Вы реализовали didDeselectItemAtIndexPath не didSelectItemAtIndexPath, поэтому при выборе другой ячейки ячейка, которую вы выбрали первой, снимается и запускает didDeselectItemAtIndexPath.

Неправильный метод used.it это didSelectItemAtIndexpath должно быть определено для цели не didDeselect