2017-06-08 3 views
-1

In meiner Anwendung habe ich eine benutzerdefinierte tableViewCell,Wie erkennt man, wenn eine benutzerdefinierte Tabellenansichtszelle vom Bildschirm verschwindet?

ich einen View-Controller auch mit einem Tableview habe, wo ich benutzerdefinierten tableViewCells anzuzeigen.

Gibt es eine Methode (ViewController-Methode oder TableViewCell-Methode), die ausgelöst wird, wenn tableViewCell vom Bildschirm verschwindet, muss ich einige Core Data-Updates für meine Zelle vornehmen.

(Ich brauche die Methode zu wissen, weil ich Core Data Wert von Timer() in meinem tableViewCell aktualisieren müssen, wenn sie aus dem Bildschirm geht.)

+0

Warum aktualisieren Sie nicht nur in sichtbaren Zellen? –

+0

Core-Daten, die eng an den visuellen Zustand einer Tabellenansicht gekoppelt sind, scheinen eine fehlerhafte Architektur zu sein. – vikingosegundo

Antwort

1

folgenden tableview delegieren verwendet Zellendabschnitte zu detektieren Anzeigen :: tableView:didEndDisplayingCell:forRowAtIndexPath:

func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) 

obige Verfahren, wenn Feuer Zelle entfernt von tableview oder Zelle ihre diplaying endet.

0

gibt es eine tableView(_:didEndDisplaying:forRowAt:) Delegatmethode: https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614870-tableview

+0

'Verwenden Sie diese Methode, um zu erkennen, wenn eine Zelle aus einer Tabellenansicht entfernt wird, anstatt die Ansicht selbst zu überwachen, um zu sehen, wann sie erscheint oder verschwindet.' Sieht so aus, als könnte dies etwas anderes bewirken. – Fogmeister

+0

gut ... in meinen Tests sieht es aber ziemlich gut aus ... –

0

Sie können tableView:didEndDisplayingCell:forRowAtIndexPath: deleaget Methode von UITableView

func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) { 

    } 

Hier bitte beachten Sie verwenden, wenn Sie neu zu laden oder Tableview Zelle, die Zelle, die entfernt wird, löst diese Methode. Implementieren Sie also zusätzliche Logik innerhalb dieser Methode, um diese Situation zu bewältigen.

Verwandte Themen