2016-06-14 25 views
0

Ich bin eine Suchfunktion implementieren, wo Sie Ergebnisse auswählen können und ich versuche es so zu machen, dass es erinnert, welche Zellen ausgewählt wurden, wenn sie erneut in den Ergebnissen angezeigt werden.Deaktivieren Sie eine Tabellenansicht Zelle, die programmgesteuert ausgewählt wurde

Ich verwende cell.setSelected(true, animated: false) in der willDisplayCell Funktion. Jetzt gibt es keine Möglichkeit, die Zellen abzuwählen. Bei erneutem Antippen werden weder die didSelectRowAtIndexPath noch die didDeselectRowAtIndexPath Funktionen aufgerufen. Was kann ich tun?

+0

Verwenden Sie diese "cell.setSelected (falsch, animiert: falsch)" –

+0

Ja, aber wo kann ich das tun? Keine der Funktionen wird aufgerufen, wenn die Zelle angetippt wird. Welche Funktion kann ich verwenden? –

+0

Wenn Sie auf eine Zelle tippen, sollte "didSelectRowAtIndexPath" aufrufen. Überprüfen Sie, ob Sie den TableView-Delegaten setzen oder nicht. –

Antwort

0

Versuchen Sie tableView.selectRowAtIndexPath(indexPath: NSIndexPath?NSIndexPath?, animated: Bool, scrollPosition: UITableViewScrollPosition) zu verwenden, um Zellen auszuwählen. Dann werden Sie die Auswahl der Ereignisse aufheben.

+0

Was ist, wenn ich ihre Indexpfade nicht habe? Ich verwende eine Eigenschaft der Zelle, um zu identifizieren, welche es ist. –

+0

@JohnFda Die Indexpfade stammen aus Ihren Daten. Wenn Sie diese Lösung nicht mögen, versuchen Sie, 'ausgewählt' in der Tabellenansichtszelle zu überschreiben. Wie folgt: 'überschreiben var ausgewählt: Bool { didSet { } } ' – Lumialxk

Verwandte Themen