Je veux quelque chose de similaire à l'application Alarme, où vous ne pouvez pas supprimer la ligne par glissement, mais vous pouvez toujours supprimer la ligne en mode Edition.
Lorsqu'il est commenté tableView: commitEditingStyle: forRowAtIndexPath :, j'ai désactivé le balayage pour supprimer et j'avais toujours le bouton Supprimer en mode Édition, mais que se passe-t-il lorsque j'appuie sur le bouton Supprimer. Qu'est-ce qui est appelé?
ios
cocoa-touch
uitableview
uikit
Willi
la source
la source
Juste pour clarifier les choses, glisser pour supprimer ne sera pas activé à moins qu'il ne
tableView:commitEditingStyle:forRowAtIndexPath:
soit mis en œuvre.Pendant que j'étais en développement, je ne l'ai pas implémenté, et par conséquent, glisser pour supprimer n'était pas activé. Bien sûr, dans une application terminée, elle serait toujours implémentée, car sinon, il n'y aurait pas d'édition.
la source
Version Swift:
la source
Vous devez implémenter la fonction CanEditRowAt.
Vous pouvez renvoyer .delete dans la fonction EditingStyleForRowAt afin de pouvoir toujours supprimer en mode édition.
la source
Fondamentalement, vous activez ou désactivez l'édition à l'aide des méthodes
Si l'édition est activée, l'icône de suppression rouge apparaît et une confirmation de suppression est demandée à l'utilisateur. Si l'utilisateur confirme, la méthode déléguée
est informé de la demande de suppression. Si vous implémentez cette méthode, glisser pour supprimer est automatiquement activé. Si vous n'implémentez pas cette méthode, le balayage pour supprimer n'est pas actif, mais vous ne pouvez pas réellement supprimer la ligne. Par conséquent, à ma connaissance, vous ne pouvez pas réaliser ce que vous avez demandé, à moins d'utiliser des API privées non documentées. C'est probablement ainsi que l'application Apple est implémentée.
la source
Sur C #:
J'ai eu le même problème où il était nécessaire d'activer / désactiver les lignes avec l'option Supprimer lors du balayage. Plusieurs lignes devaient être balayées vers la gauche et supprimées, conservez-les dans une autre couleur. J'ai réalisé en utilisant cette logique.
Notez que deletedIndexes est une liste d'index qui sont supprimés de la table sans doublons. Ce code vérifie si une ligne est supprimée, puis désactive le balayage ou vice versa.
La fonction déléguée équivalente est Swift is
canEditRowAtIndexPath
.la source
Je suis tombé sur ce problème non plus et je l'ai corrigé avec les codes ci-dessous. j'espère que cela vous aidera.
}
la source