2017-12-29 40 views
0
MenuTableView.RowHeight = UITableView.AutomaticDimension; 
MenuTableView.EstimatedRowHeight = 100; 

Für eine Zelle verwende ich AutoLayout. Alles ist an alles gebunden. Es berechnet zwar die Größe, aber wenn ich versuche, die Höhenbeschränkung des Textfelds dynamisch in 0 zu ändern, wird z. B. die Zelle ihre Höhe nicht aktualisieren (nicht schrumpfen), wie sie es anfangs tun würde, wenn ich dieselbe Einschränkung im Editor ändere.iOS, TableViewCell, Aktualisiere Höhe einer Zelle dynamisch

Alle Constraint Änderungen funktionieren gut, wenn sie in GetCell getan werden, aber nicht, wenn später dynamisch

Wie Zelle dynamisch aktualisieren? Oder wie die Zellenhöhe basierend auf Ansichten und Beschränkungen neu berechnet wird?

+1

Verwendung stackview in der Zelle verändert haben. Fügen Sie Textfeld als Unteransicht zur Stapelansicht hinzu. Wann immer Sie das Textfeld verbergen/anzeigen, wird die Zellenhöhe automatisch geändert. –

+0

Vielleicht hilfreich https://stackoverflow.com/questions/18746929/using-auto-layout-in-guidableview-for-dynamic-cell-layouts-variable-row-heights –

Antwort

1

zu aktualisieren Zelle, verwenden tableView.reloadRows(at:with) Methode, nachdem Sie etwas in dieser Zelle

+0

Es ist nicht was ich will. Um reloadRows zu verwenden, müsste ich den Zellenstatus im Datenmodell speichern. Daten sind nur Daten, es sollte keine Zustandsvariablen geben. Änderungen, die ich in der Zelle mache, betreffen keine Daten. zum Beispiel muss ich zeigen, dass einige "Details" Abschnitt in der Zelle auf Knopf klicken, die auch in der Zelle. –

+0

Sie können alles in dieser Zelle anzeigen/verbergen. Die einzige Möglichkeit, die Zellenhöhe zu ändern, besteht darin, die Tabellenansicht neu zu laden (mithilfe von reloadRows oder jeder Neuladefunktion aus der Tabellenansicht). – dduyduong

Verwandte Themen