8
votes

Uicollectionview Comment supprimer des cellules (équivalent de committingstyle)?

Je construit ma première application en utilisant uicollectionview et remarqua qu'il n'y a pas grand chose que je peux faire en termes de suppression d'objet. Pour utableview applications, il y a le balayage pour supprimer la méthode: xxx

lorsque j'utilise gmgridview , il contient des comportements similaires à une presse longue sur le bouton Écran d'accueil iPhone - La vue des étoiles à secouer et un bouton Suppr peut être affiché, responsable de la suppression de la vue. Je peux certainement essayer de reproduire ce comportement, mais je ne suis pas sûr que les utilisateurs "l'obtiennent".

Je suis intéressé par Quelles sont mes options pour laisser l'utilisateur supprimer des objets de uicollectionview - Dois-je mettre en œuvre mes propres gestes / contrôles Supprimer , ou y a-t-il quelque chose qui me manque (ou open source)?


1 commentaires

Plus je travaille avec Uicollectionview, plus je réalise à quel point l'utableview est mature ...


4 Réponses :


6
votes

par défaut uicollectionviewcell n'a qu'une vue vide (aucun titre, pas de bouton Supprimer, pas d'imageView)

Sous-classe UicollectionviewCell et ajoutez le bouton Supprimer. Sethadden = NON Lorsque vous voulez l'afficher (EX. Swipe Bas)

Utiliser une déléguée personnalisée pour supprimer les données et recharger la collectionView

échantillon Utilisez Swipe Droite pour supprimer Uicollectionviewcell xxx


1 commentaires

Ma préoccupation est que ma vision de la collection fait défiler verticalement, de sorte que la balayage ne fonctionne pas. Peut-être que c'est pourquoi il n'y a pas de balayage à supprimer - car éduquer l'utilisateur à glisser dans une certaine direction ou que la pression longue est trop tracée.



0
votes

Ce que j'ai trouvé et que je suis en train de mettre en œuvre pour supprimer et éditer des choses dans une utilisation uicollectionview de ce blog post.

Affiche essentiellement au menu pour copier / coller ECT et ajouter mes propres actions à la suppression. Sa ressemblance à la réponse d'Isang, sans ajouter de gestes reconnaissants qui ne fonctionnent pas trop bien dans Uicollectionviews.

Il utilise le geste de la presse longue que les gens ont déjà utilisé pour éditer des menus lorsqu'ils veulent copier et coller du texte et des liens dans d'autres parties de IOS.

http://paulsolt.com/2012/11/UICollectionview -custom-actions-and-uimenucontroller /


0 commentaires

7
votes

J'ai inséré ce code dans mon contrôleur d'affichage qui inclut la collectionview et l'a fait de cette façon. Vous faites probablement déjà quelque chose comme celui-ci avec le geste du robinet pour détecter la cellule sélectionnée.

- (IBAction)didLongPressCellToDelete:(UILongPressGestureRecognizer*)gesture {
CGPoint tapLocation = [gesture locationInView:self.myCollectionView];
NSIndexPath *indexPath = [self.myCollectionView indexPathForItemAtPoint:tapLocation];
if (indexPath && gesture.state == UIGestureRecognizerStateBegan) {
    NSLog(@"image with index %d to be deleted", indexPath.item);
    self.itemToBeDeleted = indexPath.item;
    UIAlertView *deleteAlert = [[UIAlertView alloc]
                             initWithTitle:@"Delete?"
                             message:@"Are you sure you want to delete this image?"
                             delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Yes", nil];
    [deleteAlert show];

}
}


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"selected button index = %d", buttonIndex);
if (buttonIndex == 1) {
    // Do what you need to do to delete the cell 
    [self.myCollectionView reloadData];
}
}


3 commentaires

Qu'est-ce que ce Self.ItempdeltobedOtleted ?


Self.ItemTobedOutEted est défini sur l'index de l'élément que l'utilisateur souhaite supprimer.


C'est compris! :) @rawmean



0
votes

Pour que quiconque lisait ceci à l'avenir, voici une bibliothèque utile que j'utilise: https://github.com/raizlabs/rzutils/tree/trzutils/rzutils / Composants / RZCollectionTableView

Il imite une vision utilitaire à l'aide d'un uicollectionview, vous pouvez donc obtenir la flexibilité de la vue de la collection avec toutes les fonctionnalités d'édition de jolies qui sont livrées avec une vision utile.

Si vous essayez de mettre en œuvre un type de comportement de suppression différent ou de disposition différente, autant que je sache, vous devez le mettre en œuvre à partir de zéro. Si vous êtes neuf pour faire des choses personnalisées avec uigesturingecogners, je recommanderais ce tutoriel: http://www.raywenderlich.com / 6567 / UIGESTRERECOMMOVER-TUTORIAL-IN-IOS-5-PINCHES-PANS-AND-PLUS

espère que cela aide!


0 commentaires