Ich habe diesen Code für meine Tabelle (_filters = UITableView)UITableViewAutomaticDimension und mehrzeilige Label Ausgabe
- (void)viewDidLoad {
// table data set here ...
_filters.estimatedRowHeight = 80;
_filters.rowHeight = UITableViewAutomaticDimension;
}
- (void)viewDidAppear:(BOOL)animated {
[_filters reloadData];
}
I Multi-Line-Label innerhalb meiner benutzerdefinierten Zelle haben. Einige Zeilen sind einzeilig, manche Zeilen mehrzeilig. Ich verwende Einschränkungen. Es funktioniert gut, aber was ist Problem:
Wenn ich öffnen Sie die Steuerung, Tabelle zeigt für eine Weile alt nicht richtig bemessen Zellen-Layout, dann nach einer Weile wird das richtige Layout angezeigt. Wahrscheinlich, weil die Tabellendaten in viewDidLoad gesetzt sind und dann die Tabelle in viewDidAppear neu geladen wird.
Aber:
1) Wenn ich reload von viewDidAppear entfernen, Layout richtigen Zellen nicht wiedergegeben wird (es sei denn, die Tabellenzellen werden aus dem Bildschirm gescrollt)
2) Wenn ich den Code aus viewDidLoad gestellt viewDidAppear, dasselbe Problem wie oben. Das korrekte Zellenlayout wird nicht gerendert.
So, jetzt habe ich richtig Zellen gemacht Layout, aber für wie 1-2 sec ich altes schlechten Zellen-Layout zu sehen, so dass es hässlich aussieht ..
Ich habe alles versuchte der folgenden Anrufe in cellForRowAtIndexPath zu setzen, zu haben das richtige Layout noch bei der ersten Belastung, aber nichts hat funktioniert.
//[cell setNeedsUpdateConstraints];
//[cell updateConstraintsIfNeeded];
//[cell setNeedsLayout];
//[cell layoutIfNeeded];
Jede Lösung? Dank ..
Problem ist sowohl auf iOS8/9.
diese Methode und Label Linie auf 0 func gesetzt Tableview hinzuzufügen! (Die fehlende Methode hat es behoben) –
Hallo Chirag, es hat funktioniert danke - (NSIndexPath: UITableView, estimatedHeightForRowAtIndexPath indexPath Tableview) – luky
@Chirag, fügen Sie hier Ihren Kommentar als Antwort hinzu, damit die Leute es als hilfreich empfinden. –