UITableViewCell wird beim Zurückrollen auf dem Bildschirm erneut ausgewählt

8

Ich habe bei der Implementierung von UITableView in einer iOS-App, an der ich gerade arbeite (iOS SDK 4.2), auf ein Problem gestoßen. Wenn ich in der Tabellenansicht auf eine Zelle tippe und dann durch die Ansicht blättere, so dass die Zelle den Bildschirm verlässt, wird die zuletzt ausgewählte Zelle erneut ausgewählt, wenn sie wieder angezeigt wird.

Um dies zu testen, habe ich ein neues View Based Application-Projekt erstellt, ein UITableView in Interface Builder gezogen und den View-Controller als Datenquelle und Delegate der Tabellenansicht festgelegt und den folgenden Code in den View-Controller eingefügt:

%Vor%

Wenn ich diese Funktion (im Simulator oder auf dem Gerät) ausführen würde, wenn ich irgendeine Zelle (z. B. Zelle 12) antippen würde, würde sie ausgewählt und abgewählt werden. Danach, wenn keine Zellen in der Tabelle ausgewählt sind, wenn ich die Ansicht scrolle, so dass die zuletzt ausgewählte Zelle (in diesem Fall 12) den Bildschirm verlässt, wird sie erneut ausgewählt, wenn sie wieder erscheint.

Ist dies das beabsichtigte Standardverhalten für UITableView ? Oder möglicherweise ein Fehler in meiner Implementierung? Was wäre der beste Weg, um diese Zelle in dieser Situation zu deaktivieren?

    
David Barry 28.01.2011, 09:54
quelle

1 Antwort

13

Ich habe mich gefragt, ob ich das selbst herausfinden könnte:

Mein Problem war die Verwendung der UITableViewCell Methode setSelected: anstelle der UITableView Methode deselectRowAtIndexPath: .

    
David Barry 28.01.2011, 10:58
quelle