Ich habe editActionsForRowAtIndexPath und commitEditingStyle implementiert, aber beim Überstreichen der Zelle werden keine Bearbeitungsaktionen in der tableViewCell angezeigt

8

Ich habe editActionsForRowAtIndexPath und commitEditingStyle implementiert, der Swipe funktioniert, aber keine Bearbeitungsaktionen werden auf UITableViewCell

angezeigt

meine Implementierung für editActionsForRowAtIndexPath und commitEditingStyle wie folgt:

%Vor%

Jede Hilfe wird geschätzt

    
Abdelrahman 23.06.2015, 13:23
quelle

6 Antworten

9

Ich denke, du hast hier zwei verschiedene Arten der Bearbeitung gemischt.

Die erste Bearbeitungsart ist das alte UITableViewCellEditingStyle.Delete . Und die neue Möglichkeit besteht darin, Ihre benutzerdefinierte Zubehöransicht bereitzustellen.

Wenn Sie Ihre benutzerdefinierte Zubehöransicht implementieren, werden die Standardlöschtasten nicht angezeigt und daher nicht aufgerufen. Also dein

%Vor%

könnte aus meiner Sicht nicht einmal aufgerufen werden.

Apple's Dokumentation Für editActionsForRowAtIndexPath enthält die folgende Sentense: If you do not implement this method, the table view displays the standard accessory buttons when the user swipes the row. Ich nahm an, dass die Standardzubehöransicht nicht angezeigt wird, wenn Sie diese Methode implementieren.

Bearbeiten: Codebeispiel (aktualisiert zu Swift 3 11/17/16)

%Vor%

Bearbeiten 2: Rajagp weist darauf hin, dass Sie keine leere Implementierung benötigen, wenn Sie nur auf iOS9 (oder höher) abzielen.

    
gyan 23.06.2015 14:14
quelle
2

Sie müssen canEditRowAtIndexPath aus den Delegate-Methoden von UITab View implementieren und true zurückgeben.

    
Matt Rees 23.06.2015 13:29
quelle
1

Versuchen Sie, eine Aktion innerhalb der Löschschaltfläche hinzuzufügen

%Vor%     
svmrajesh 11.09.2015 10:00
quelle
1

TLDR:

Notwendige Funktionen zur Implementierung: • commitEditingStyle • canEditRowAt • editActionsForRowAt

Hinweis: Für editActionsForRowAt kann hier kein leeres Array zurückgegeben werden - es wird alle Zellen vermasseln. Wenn es einen bestimmten Zeilentyp gibt, für den Sie keine Bearbeitungsaktionen zulassen möchten, geben Sie dies in canEditRowAt an, um für diesen Zelltyp den Wert false zurückzugeben.

    
KingChintz 04.06.2017 04:12
quelle
0

Ich habe gerade den ViewController kopiert, wo die Zeilen-Aktionsschaltflächen angezeigt werden und gut funktionieren und den ersetzen, wo die Zeilen-Aktionsschaltflächen beim Verschieben nicht erscheinen, und jetzt werden die Zeilenaktionsschaltflächen angezeigt und haben das erwartete Verhalten gezeigt.

Aber ich verstehe das Problem nicht. kann das jemand erklären?

    
Abdelrahman 25.06.2015 18:16
quelle
0

Entschuldige, dass ich so einen alten Thread aufwecke, aber ich habe es bei Swift 3 implementiert:

%Vor%     
Jorge Ramos 01.08.2017 08:59
quelle