You have implemented didDeselectItemAtIndexPath
not didSelectItemAtIndexPath
, thus when you select an other cell the cell you selected first gets deselected and triggers the didDeselectItemAtIndexPath
.
UICollectionView didselect doesn't work
-
01-06-2022 - |
Pergunta
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.
Solução
Outras dicas
wrong method used.it is didSelectItemAtIndexpath
to be defined for the purpose not didDeselect
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow