Masquer le button Supprimer de UITableViewCell

  • Lorsque la vue de ma table est en mode édition, les buttons rouges (-) apparaissent.
  • Lorsque l'user appuie sur l'un d'entre eux, le button [Supprimer] apparaît.
  • Lorsque l'user appuie sur [Supprimer], je vérifie d'abord quelques éléments (en partie en ligne). Cette suppression peut ne pas être autorisée.

  • Lorsque la suppression de cette cellule n'est pas autorisée, comment puis-je masquer le button [Supprimer] et laisser le button rouge (|) devenir à nouveau (-) de manière animée? Donc, je ne veux pas que toute ma table quitte l'état d'édition.

Pour get l'animation réelle (au lieu des animations UITableViewRowAnimationRight / UITableViewRowAnimationAutomatic ), faites simplement

 [self.tableView beginUpdates]; [self.tableView setEditing:NO animated:NO]; [self.tableView setEditing:YES animated:NO]; [self.tableView endUpdates]; 

beginUpdates et endUpdates fournissent l'animation, et la tableView est simplement passée de l'édition à l'édition instantanée, ce qui ferme le button de suppression.

J'espère que cela t'aides!

J'ai moi-même rencontré ce problème lorsque je peux afficher une vue d'alerte pour inviter l'user plus loin et que je souhaite réinitialiser le button de suppression s'il choisit de ne pas continuer. Cela semble être l'approche la plus simple, en supposant que deleteIndexPath est le path d'index de la ligne sélectionnée pour la suppression:

 [self.tableView reloadRowsAtIndexPaths:@[deleteIndexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 

Je vois maintenant que vous voulez désactiver la suppression pour seulement certaines cellules. Vous pouvez le faire de plusieurs façons:

tableView:canEditRowAtIndexPath Méthode tableView:canEditRowAtIndexPath : Renvoie NO à l'endroit où vous voulez que DELETES soit DISABLED. tableView:canMoveRowAtIndexPath : Retourne YES où vous voulez autoriser la réorganisation.

Vous pouvez envisager de subsplit UITableViewCell pour lui donner la possibilité de conserver son propre état (afin que la cellule sache si la suppression est autorisée ou non.) Vous pouvez ensuite interroger l'instance de la cellule et déterminer si vous devez activer la suppression même après la suppression. list peut être re-commandé.