UITableView deaktivieren Wischen zum Löschen, aber immer noch im Bearbeitungsmodus löschen?
Möchte ich etwas ähnlich wie die Alarm-app, wo Sie können nicht, streichen Sie die Zeile löschen, aber man kann immer noch löschen Sie die Zeile in den Edit-Modus.
Wenn auskommentiert tableView:commitEditingStyle:forRowAtIndexPath:,, ich deaktiviert die swipe zu löschen und hatte immer noch die Delete-Taste im Edit-Modus, aber was passiert, wenn ich drücken Sie die Schaltfläche "Löschen". Was wird genannt?
InformationsquelleAutor der Frage willi | 2009-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, es stellt sich heraus, ziemlich einfach. Dies ist, was ich getan habe um dieses Problem zu lösen:
Objective-C
Swift 2
Swift 3
Müssen Sie noch umsetzen
tableView:commitEditingStyle:forRowAtIndexPath:
zu verpflichten, die Löschung.InformationsquelleAutor der Antwort willi
Nur um die Dinge klarzustellen, swipe-to-delete werden nicht aktiviert, sofern
tableView:commitEditingStyle:forRowAtIndexPath:
umgesetzt wird.Während ich war in der Entwicklung, die ich nicht umsetzen, und deshalb swipe-to-delete war nicht aktiviert. Natürlich, in einer fertigen app, es würde immer umgesetzt werden, denn sonst gäbe es keine Bearbeitung.
InformationsquelleAutor der Antwort Marc Rochkind
Swift Version:
InformationsquelleAutor der Antwort kareem
Im Grunde, Sie aktivieren oder deaktivieren der Bearbeitung mit den Methoden
Wenn die Bearbeitung aktiviert ist, wird das rote löschen-Symbol angezeigt wird, und eine delete-Konformation angefordert für den Benutzer. Wenn der Benutzer bestätigt, die delegate-Methode
mitgeteilt, die Anfrage löschen. Wenn Sie diese Methode implementieren, und streichen Sie dann zu löschen ist automatisch aktiv. Wenn Sie nicht diese Methode implementieren, und streichen Sie dann zu löschen ist nicht aktiv, aber Sie sind nicht in der Lage, um tatsächlich löschen Sie die Zeile. Also, nach meinem besten wissen, Sie können nicht erreichen, was Sie gefragt haben, es sei denn Sie verwenden einige undokumentierte, private APIs. Wahrscheinlich ist dies, wie die Apple-Anwendung implementiert ist.
InformationsquelleAutor der Antwort Massimo Cafaro
Auf C#:
Ich hatte das gleiche Problem, wo es nötig war, um aktivieren/deaktivieren von Zeilen mit dem Delete-option wischen. Mehrere Zeilen benötigt, geklaut werden die linke und gelöscht zu bekommen, halten Sie Sie in einer anderen Farbe. Ich erreichte mit dieser Logik.
Beachten Sie, dass deletedIndexes sind eine Liste von Indizes, die gelöscht werden aus der Tabelle ohne Duplikate. Dieser code überprüfen, ob eine Zeile gelöscht wird, dann wird es deaktiviert streichen oder Umgekehrt.
Den Gegenwert delegieren Funktion ist Swift ist
canEditRowAtIndexPath
.InformationsquelleAutor der Antwort A.G