Ich möchte etwas Ähnliches wie die Alarm-App, bei der Sie nicht wischen können, um die Zeile zu löschen, aber Sie können die Zeile trotzdem im Bearbeitungsmodus löschen.
Beim Auskommentieren von tableView: commitEditingStyle: forRowAtIndexPath: habe ich das Wischen zum Löschen deaktiviert und die Schaltfläche Löschen im Bearbeitungsmodus beibehalten. Was passiert jedoch, wenn ich die Schaltfläche Löschen drücke? Wie heißt das?
ios
cocoa-touch
uitableview
uikit
Willi
quelle
quelle
Um die Dinge klarer zu machen, wird das Wischen zum Löschen nur aktiviert, wenn
tableView:commitEditingStyle:forRowAtIndexPath:
es implementiert ist.Während ich in der Entwicklung war, habe ich es nicht implementiert und daher war das Wischen zum Löschen nicht aktiviert. Natürlich würde es in einer fertigen App immer implementiert sein, da sonst keine Bearbeitung stattfinden würde.
quelle
Schnelle Version:
quelle
Sie müssen die CanEditRowAt-Funktion implementieren.
Sie können .delete in der Funktion EditingStyleForRowAt zurückgeben, damit Sie im Bearbeitungsmodus weiterhin löschen können.
quelle
Grundsätzlich aktivieren oder deaktivieren Sie die Bearbeitung mit den Methoden
Wenn die Bearbeitung aktiviert ist, wird das rote Löschsymbol angezeigt und eine Löschkonformation an den Benutzer angefordert. Wenn der Benutzer bestätigt, die Delegatmethode
wird über die Löschanforderung informiert. Wenn Sie diese Methode implementieren, wird das Wischen zum Löschen automatisch aktiviert. Wenn Sie diese Methode nicht implementieren, ist das Wischen zum Löschen nicht aktiv. Sie können die Zeile jedoch nicht tatsächlich löschen. Daher können Sie meines Wissens nicht das erreichen, wonach Sie gefragt haben, es sei denn, Sie verwenden einige undokumentierte private APIs. Wahrscheinlich ist die Apple-Anwendung so implementiert.
quelle
Auf C #:
Ich hatte das gleiche Problem, bei dem es erforderlich war, Zeilen mit der Option Löschen beim Wischen zu aktivieren / deaktivieren. Mehrere Zeilen mussten nach links gewischt und gelöscht werden. Halten Sie sie in einer anderen Farbe. Ich habe es mit dieser Logik erreicht.
Beachten Sie, dass deletedIndexes eine Liste von Indizes sind, die ohne Duplikate aus der Tabelle gelöscht werden. Dieser Code prüft, ob eine Zeile gelöscht wurde, deaktiviert dann das Wischen oder umgekehrt.
Die äquivalente Delegatenfunktion ist Swift
canEditRowAtIndexPath
.quelle
Ich bin auch auf dieses Problem gestoßen und habe es mit den folgenden Codes behoben. hoffe es wird dir helfen.
}}
quelle