Ich habe eine einzelne Prototypzelle erstellt, die zwei Labels (mainLabel und subLabel) und einen uiimageview hat. In der uitableview möchte ich mehrere Zellen haben, die den Prototyp wiederverwenden und bei Bedarf wird das SubLabel ausgeblendet und der uiimageview wird mit einem anderen oder einem Uiswitch geändert. Die zwei Bezeichnungen haben für jede Zelle einen unterschiedlichen Text. Hast du irgendwelche Vorschläge/Hinweise, um es zu tun? möglicherweise in einer MVVM-Architektur?Kann ich eine einzelne benutzerdefinierte Zelle für mehrere verschiedene Zellen verwenden?
Ich werde beschreiben, was ich tue:
ich eine Struktur haben (Modell) mit zwei Eigenschaften: Label und Sublabel. Dies wird dann durch ein viewModel instantiiert, das Text für jede Zelle bereitstellt, und zwar durch eine Methode namens getModel (_ indexPath: IndexPath) -> cellModel {...}. Schließlich in UIViewController, in TableView (_ TableView: UITableView, CellForRowAt IndexPath: IndexPath) {...} Ich rufe getModel(), mit dequeueReusingCell und Einrichten der einzelnen Zelle. In getModel() gibt es einen Huuuge Schalter, den ich verwende, um zu wissen, welche Zelle ist
Dann in uitableviewcell Ich habe eine Methode, die Sublabel versteckt und ändert uiimageview.
Es funktioniert irgendwie, aber ich habe ein paar Probleme mit dem Scrollen. Zum Beispiel wird manchmal ein uiimageview in einer anderen Zelle gezeichnet, oder ein subLabel ist versteckt, auch wenn es nicht beabsichtigt ist. Ich schätze, das liegt daran, dass die Zelle wieder verwendet wird und ich sie nicht zurücksetze.
Wie auch immer, irgendwelche Vorschläge oder Ideen?
Ich weiß, das ist overkilling ...