Supprimer un élément à partir d'un UICollectionView
J'ai une série d'images montrant dans un UICollectionView
. Lorsque l'utilisateur clique sur une image, il donne naissance à un UIActionSheet
avec quelques options pour cette image. L'un d'eux id retrait de la photo de la UICollectionView
. Lorsque l'utilisateur sélectionne le bouton supprimer dans la UIActionSheet
, il apparaît un affichage des alertes pour demander confirmation. Si l'utilisateur sélectionne oui, il faut supprimer la photo.
Mon problème est que, pour supprimer l'élément de la UICollectionView
, vous devez passer l' indexPath
à la deleteItemsAtIndexPaths
événement. Depuis la confirmation définitive est accordée dans l'affichage des alertes de didDismissWithButtonIndex
cas, je ne peux pas trouver un moyen pour obtenir le indexPath
de l'image sélectionnée à partir de là à passer à deleteItemsAtIndexPaths
événement. Comment puis-je faire cela?
Voici mon code:
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (buttonIndex) {
case 0:
deletePhotoConfirmAlert = [[UIAlertView alloc] initWithTitle:@"Remove Photo"
message:@"Do you want to remove this photo?"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil, nil];
[deletePhotoConfirmAlert addButtonWithTitle:@"Yes"];
[deletePhotoConfirmAlert show];
break;
case 1:
NSLog(@"To Edit photo");
break;
}
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (alertView == deletePhotoConfirmAlert) {
if (buttonIndex == 1) {
//Permission to delete the button is granted here.
//From here deleteItemsAtIndexPaths event should be called with the indexPath
}
}
}
- (void)deleteItemsAtIndexPaths:(NSArray *)indexPaths
{
}
OriginalL'auteur Isuru | 2013-04-18
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas utiliser [self.collectionView indexPathsForSelectedItems]; . Je l'ai fait pour la suppression de plusieurs images à la fois.
Modifier
[self deleteItemsFromDataSourceAtIndexPaths:selectedItemsIndexPaths];
.Sory j'ai oublié de faire un point deleteItemsFromDataSourceAtIndexpaths est ma fonction personnalisée pour supprimer les images sélectionnées à partir de ma source de données tableau. Vous pouvez directement faire l'opération elle-même. Anwy il est important de supprimer des images à partir de votre source de données tableau avant l'appel de deleteItemsAtIndexPaths:
Je vois. Maintenant j'essaie de supprimer l'image de la source de données tableau à l'aide de
removeObjectAtIndex
. Mais depuis, il attend une valeur de type entier, comment puis-je obtenir de l'selectedItemsIndexPaths
tableau?Voir ma réponse mis à jour.
Fonctionne parfaitement. Merci beaucoup, Anil 🙂
OriginalL'auteur Anil Varghese