0

Frage: Wie kann ich Constraints in einer UITableViewCell mit UITableViewAutomaticDimension verwenden, wenn es nebeneinander liegende Labels gibt, die jeweils eine unterschiedliche Anzahl von Zeilen enthalten können?Horizontale UILabels in einem Self-Sizing UITableViewCell

Ich habe eine Tabelle mit Zellen, die Etiketten nebeneinander enthalten:

tablecells with horizontal labels

Ich bin eine harte Zeit, um die Zelle zu Größe immer richtig, wenn eines der Etiketten auf der einen Seite mehr Linien als das entsprechende Etikett auf der anderen Seite. Eines der Labels wird immer abgeschnitten. Wenn beide Labels die gleiche Anzahl von Zeilen haben, wird die Größe der Zelle perfekt angepasst und der gesamte Text kann angezeigt werden.

Ich habe eine Reihe von Constraint Tweaks versucht, aber nichts funktioniert perfekt wie gewünscht.

Ich habe versucht, versteckte Label für die Höhe hinzufügen ... aber es funktioniert nicht gut für die Zelle mit 4 Etiketten Ich habe versucht, die Etiketten in einer Ansicht, aber dann die Höhe der Ansicht noch muss berechnet werden.

Derzeit sind die Einschränkungen normal eingestellt: oben, unten, links, rechts, Beschriftungen sind auf 0 Zeilen gesetzt usw. und funktioniert gut, wenn beide Etiketten den gleichen Text oder die gleiche Anzahl von Zeilen haben.

Gibt es eine Möglichkeit, dies mit Einschränkungen zu tun? Oder muss ich die alte Höhe für die Zeile im Indexpfad wiederherstellen? = (

Antwort

0

Es gibt eine Möglichkeit zu erreichen, was Sie nur mit Einschränkungen tun wollen. Der Trick besteht darin, die Beziehung der Beschränkungen zwischen den zwei unteren Etiketten und dem Boden auf Greater Than or Equal anstelle von equal festzulegen.

Hier ist, wie ich die Einschränkungen festgelegt:

enter image description here

, die dieses Ergebnis hat:

enter image description here

Oder Sie könnten die Beschränkungen zwischen den Etiketten oben und unten auf Greater Than or Equal gesetzt und Lassen Sie die untere Beschränkung bei equal:

enter image description here

dieses Ergebnis zu erhalten:

enter image description here

+0

Danke die erste Option funktioniert gut – Amos

0

ich eine Lösung gefunden, wo ich nicht auf die Verwendung Tableview zurückkehren musste.. HeightForRowAtIndexPath

ich ein Etikett auf die Zelle mit der Textfarbe auf Clear hinzugefügt und nannte es ‚heightLabel‘ Ich habe Einschränkungen der heightLabel so würde die Zelle auf die Zwänge des heightLabel basiert Größe ändern.

dann je nachdem, was der linken oder rechten Etiketten den meisten Text hatte, stellte ich, dass Text innerhalb des heightLabel des Labels.

die noch Zellen waren nicht Größe ändern und ich musste "layoutIfNeeded" auf der Zelle aufrufen, bevor ich zurückkomme die Zelle in tableView: cellForRowAtIndexPath.

Die Einschränkungen von heightLabel werden jetzt verwendet, um die Größe der Zelle zu ändern, und UITableViewAutomaticDimensions funktioniert ordnungsgemäß.

Dies ist vielleicht nicht die beste Lösung, aber es funktioniert ziemlich gut. Wenn es einen angemesseneren Weg gibt, bin ich offen für Vorschläge.

Verwandte Themen