2016-06-02 12 views
0

Ich habe eine UITableView mit Zellen Inhalt variabler Höhe. Wenn der Inhalt für automatisch geschalteten Inhalt einwandfrei ist, wird der Inhalt in meinem Fall nur geladen (an UI gebunden), wenn eine Zelle angezeigt wird (Recycling, Wiederverwendung usw.). Die einzige Chance, die tatsächliche UITableViewCell Höhe zu kennen, ist bei willDisplay meiner Tabelle dataSource .UITableView und UITableViewCell mit dynamischer Höhe, die nur bei WillDisplay bekannt ist

Zu diesem Zeitpunkt verpasste ich bereits EstimatedHeight und GetHeightForRow Stufen.

Bitte raten, wie ich UITableViewCell Höhe bei WillDisplay Stufen ändern kann

Antwort

1

Wenn Sie das Autolayout rechts eingestellt, und die Zelle sollte seine eigene Höhe berechnen, Es spielt keine Rolle, wann und waren, werden Sie Ihren Inhalt ändern/Inhalt Höhe, Es wird sich anpassen. Überprüfen Sie, ob der obere Teil des Zelleninhalts eine Beschränkung auf den Inhalt der Zellen ContentView hat, und dasselbe gilt für den unteren Rand.

Geschätzte Höhe wie der Name sagt, ist nur eine Schätzung. Das bedeutet, dass Sie einige Implementierungen haben sollten, um die Höhe des dataSource-Modellobjekts zu berechnen, nur eine grundlegende Implementierung.

Oder Sie können die Anwendung einmal ausführen, und sehen, wie viel ist die Zellenhöhe nach Sein berechnet die Höhe mit AutoLayout, aber das ist viel weniger "dynamisch".

Wenn eine Zelle ihre Höhe nach seiner bereits eingestellt ändert, können Sie anrufen:

[tableView beginUpdates]; 
[tableView endUpdates]; 

Und die Zelle selbst neu zu berechnen, anstatt das Loch Tableview nachzuladen.