2009-04-20 15 views
3

Ich habe ein iPhone UITableView angezeigt benutzerdefinierte UITableViewCell s, die auf der rechten Seite die Offenlegung-Schaltfläche Symbol angezeigt.
Wenn ich die Zelle wische, wird die Schaltfläche zum Öffnen automatisch durch die rote Schaltfläche "Löschen" ersetzt. Wenn ich die "Löschen" -Taste drücke, wird die Zeile aus der Tabelle entfernt, aber dann passiert etwas Seltsames.
Wenn ich die Tabelle scrollen und die gelöschte Zelle ist wieder verwendet die Daten korrekt geladen sind, aber die Offenlegungstaste fehlt.iPhone UITableView fehlende Disclosure-Taste nach dem Drücken der Delete-Taste bei der Wiederverwendung von UITableViewCell

Ich habe versucht, den Knopf in der prepareForReuse Methode aber ohne Erfolg zurückzusetzen.

Ich verstehe nicht, was ich vermisse, weil das Verhalten der Mail-Anwendung das gleiche scheint, so sollte es nativ vom iPhone OS unterstützt werden.

BTW: Die UITableViewCell wird von einer NIB geladen.

+0

Können Sie den Code zeigen Sie verwenden die die Zeile löschen? – Jab

Antwort

5

es scheint, dass ich das Problem in

durch Zugabe gelöst haben
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

diese Codezeile:

[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton]; 

Ich denke, diese Linie mit normalen Zellen nutzlos ist, aber das richtige Verhalten der Zelle wiederherzustellen mit nach gelöscht wieder verwendet Zellen ...

Wie auch immer die Zeile I in

verwendet löschen

dies (ich glaube) Standardlinie:

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; 

Dank Stefano

Verwandte Themen