indexPath wird nach der Verwendung von deleteRowsAtIndexPaths nicht aktualisiert

8

Ich habe eine Methode erstellt, die mein UITableView aktualisiert, wenn der Benutzer eine Zelle löschen möchte.

%Vor%

p_currentFriends ist ein NSMutableArray, das alle von UITableView gedruckten Objekte enthält.

Diese Methode funktioniert gut, wenn ich sie einmal benutze, aber sie schlägt fehl, wenn ich sie mehrmals benutze.

Offenbar bleibt der indexPath bei jedem Aufruf von deleteRowsAtIndexPaths gleich.

Zum Beispiel - Beim ersten Aufruf klickt der Benutzer auf die zweite Zelle indexPath = [0,1] und die korrekte Zelle wird gelöscht. - Beim zweiten Aufruf antippt der Benutzer die dritte Zelle und indexPath = [0,3] statt [0,2]

/ * Ich hoffe, ich bin klar genug: / * /

Der einzige Weg, den ich gefunden habe, um es funktionieren zu lassen, ist reloadData zu verwenden, aber ich möchte eine Animation zum Löschen der Zelle haben.

Hat jemand eine Lösung oder einen Hinweis?

    
Bou 12.11.2012, 15:15
quelle

5 Antworten

8

Was Sie tun, ist grundsätzlich korrekt, aber Sie müssen das tableView irgendwie neu laden. Wenn du nicht das ganze tableView neu laden willst, benutze das, was dir auch animation gibt -

%Vor%     
SomaMan 12.11.2012, 15:33
quelle
3
  

Swift 2.2

Die beste Lösung, die ich gefunden habe, ist ein NSTimer einzustellen und die Nachladedaten 0,5 Sekunden später aufzurufen, was genügend Zeit für die Beendigung der Animation bietet. Die Selector("loadData") ist eine Methode, die tableview.reloadData()

enthält %Vor%
  

Swift 3.0

%Vor%     
Tal Zion 12.01.2016 02:03
quelle
0

Sie sollten delteRowsAtIndexPaths: und andere Tabellenbearbeitungsvorgänge mit beginUpdates umgeben und endUpdates . Das könnte dein Problem lösen.

    
Brendon 12.11.2012 15:20
quelle
0

Siehe die obige Antwort, Hier ist meine Lösung:

%Vor%     
Otherplayer 13.04.2016 06:02
quelle
0

Die reloadSections: -Methode funktioniert, aber Sie erhalten keine normale Animation zum Löschen einer Zeile, sondern stattdessen eine Fade-Animation. In iOS 11 ist eine neue Methode verfügbar, die das löst:

%Vor%     
Simon Wigzell 10.12.2017 14:31
quelle

Tags und Links