Wie aktiviert man Swipe zum Löschen von Zellen in einem TableView?
Ich habe eine UIViewController
implementiert TableViews delegate und datasource Protokolle.
Jetzt möchte ich hinzufügen, dass "swipe to delete" - Geste Zellen.
Wie sollte ich es angehen.
Habe ich eine leere Implementierung von commitEditingStyle
Methode und auch die-Bearbeitung-Eigenschaft auf JA.
Immer noch die swipe-Funktion nicht kommt .
Nun muss ich einzeln hinzufügen UISwipeGesture
zu jeder Zelle ?
Oder bin ich etwas fehlt ?
InformationsquelleAutor der Frage Amogh Talpallikar | 2012-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie nicht gesetzt
editing:YES
wenn Sie brauchen, um zu zeigen, Löschen-Taste auf die Zelle streichen. Implementieren SietableView:canEditRowAtIndexPath:
und zurück JA von dort aus für die Zeilen, die Sie brauchen, zu Bearbeiten/löschen. Dies ist nicht erforderlich, wenn Ihre tableView dataSource ist eine Unterklasse von UITableViewContoller - wenn diese Methode nicht überschrieben, gibt JA standardmäßig. In allen anderen Fällen, die Sie haben, um es zu implementieren.EDIT: Zusammen wir haben das problem gefunden -
tableView:editingStyleForRowAtIndexPath:
zurückgegebenUITableViewCellEditingStyleNone
wenn die Tabelle nicht im Bearbeitungsmodus.InformationsquelleAutor der Antwort Kyr Dunenkoff
Als Dan hat kommentiert vor, die Sie implementieren müssen die folgenden table view delegate-Methoden:
tableView:canEditRowAtIndexPath:
tableView:commitEditingStyle:forRowAtIndexPath:
Hinweis: ich habe versucht, diese in iOS 6 und iOS 7.
InformationsquelleAutor der Antwort Dj S
InformationsquelleAutor der Antwort Can Aksoy
Bitte versuchen Sie diesen code in swift,
InformationsquelleAutor der Antwort Masa S-AiYa
Versuchen Sie, den folgenden zu Ihrer Klasse:
InformationsquelleAutor der Antwort David M. Syzdek
Abschluss Kyr Dunenkoff chat ist
sollten nicht definiert werden, wenn Sie benötigen, löschen-Taste, erscheinen auf streichen.
InformationsquelleAutor der Antwort Thiru
Dies ist der swift-version
InformationsquelleAutor der Antwort JZAU
Dies war ein problem, für mich auch...könnte ich nur Swipe zu löschen, um zu arbeiten, sobald alle 10 oder so versucht. Es stellt sich heraus, das
gesture
auf dem TV war blockiert durch eine andere Geste in die übergeordnete view-controller. Der Fernseher war eingebettet in eineMMDrawerController
(streichen Sie in der Lage, Schublade layout).Einfach zu konfigurieren, die gestik-Erkennung in der Schublade-controller nicht reagieren, zu schließen gesten in die flankierenden Schubladen erlaubt swipe zu löschen, zu arbeiten in meinem TV.
Könnten Sie auch versuchen, etwas wie das zu tun mit der
gesture delegate
:InformationsquelleAutor der Antwort Kevin
In meiner Erfahrung, scheint so, müssen Sie haben
editing
aufUITableView
eingestelltNO
für swiping zu arbeiten.self.tableView.editing = NO;
InformationsquelleAutor der Antwort kgaidis
Wenn Sie mit einem
NSFetchedResultsControllerDelegate
zum füllen der Tabelle anzeigen, dieser arbeitete für mich:tableView:canEditRowAtIndexPath
gibt true zurück, immerIn Ihrem
tableView:commitEditingStyle:forRowAtIndexPath
Umsetzung, nicht löschen Sie die Zeile direkt aus der Tabelle anzeigen. Stattdessen löschen Sie es mit Ihrem managed-object-Kontext, z.B.:InformationsquelleAutor der Antwort GabeV
Nach iOS 8.0, Sie können Sie benutzerdefinierte Aktion in
InformationsquelleAutor der Antwort user501836
InformationsquelleAutor der Antwort Vimal Raval
Können Sie sehen, alle notwendigen Methoden durch die Schaffung einer UITableViewController-Klasse (temporär) in XCode 5 und kopieren Sie dann die Methode, die Sie verwenden möchten. Diese Methoden müssen Sie auskommentiert mit pre-gefüllt in den Zeilen, die Sie wünschen.
InformationsquelleAutor der Antwort Emin Buğra Saral