Ich habe meine benutzerdefinierte uitableviewcell erfolgreich mit automatischer Bemaßung arbeiten lassen. In meiner benutzerdefinierten Zelle habe ich eine Beschriftung (wird verwendet, um Beschriftungen anzuzeigen, kann eine Zeile oder Multilinien sein) und eine Bildansicht. Auto-Layout ist korrekt eingestellt und ich habe die geschätzte Zeilenhöhe angegeben und die Zeilenhöhe als automatische Dimension festgelegt. Meine benutzerdefinierte Zelle ändert die Höhe basierend auf UILabel-Text dynamisch, wenn ich Dummy-Daten verwendete, die in viewDidLoad eingerichtet wurden.UITableViewCell Automatische Zeilenhöhe funktioniert nach asynchronem Aufruf nicht
Allerdings muss ich API-Aufruf innerhalb meiner benutzerdefinierten Tableviewcell-Klasse, d. H. Innerhalb CellForRowAtIndexPath-Methode, um entsprechende Daten abrufen, um in meinem UILabel und UIImageView anzuzeigen. Nach dem erfolgreichen Abrufen der Daten aktualisiere ich die UI-Elemente. In diesem Fall ändert die Zelle die Höhe jedoch nicht dynamisch und mein UILabel wird auf eine Zeile gekürzt.
Ich habe versucht, reloadRowsAtIndexPath-Methode aufrufen, aber es verursacht seltsame Bounces, wenn ich die Tabellenansicht scrollen. Ich habe Stunden versucht, irgendeine Idee, wie man automatische Tabellenansichtreihenhöhe herstellt, wenn nach dem Abrufen von Daten vom API Anruf?
Warum rufen Sie Ihre API in CellForRowAtIndexPath ?? Sie können Ihre API in viewDidLoad() aufrufen und das Ergebnis in einem Array oder einem Array von Wörterbüchern gemäß Ihren Anforderungen speichern. Sie können dieses Array dann zum Aktualisieren von UI-Elementen verwenden. – luckyShubhra
Ich denke, es ist völlig normal, die API von cellForRow ... aufzurufen, weil wir keine externen Daten abrufen wollen, die der Benutzer möglicherweise nie anzeigt. – Jonny