2016-04-04 9 views
1

Also habe ich versucht, ein benutzerdefiniertes Layout von UITableViewCell, dass es ein Bild und ein Label enthält, wie Sie es in der Abbildung sehen können.UITableViewCell Constraints

Custom Layout

Das Hauptproblem der Kompression ist und umarmt habe ich meinen Finger nicht auf sie setzen, und ich kann nicht verstehen, warum das Bild erweitert, habe ich die Kompression und umarmen sich sowohl

geändert BILDEINSTELL:

Image

Etiketteneinstellungen:

Label

Irgendwelche Vorschläge, wie ich das Schrumpfen des Etiketts beheben kann?

+1

Sie nicht brauchen, um sowohl die 'Top' +' Bottom' und das 'Align Center Y' Beschränkungen. Sie können widersprüchlich sein, wenn sich die Constraint-Konstanten "Top" und "Bottom" unterscheiden. – Mathews

+0

yeah @EI Captain –

+0

Sie können das Bild nicht auf feste Breite einstellen? –

Antwort

1

Inhalt umarmt wird skaliert, so dass größere Zahlen "mehr Umarmungen" bedeuten. Mit anderen Worten, Ihr Label (Content-Hugging-Priorität = 251) wird versuchen, seine Größe mit der Content-Größe zu vergleichen, die größer ist als Ihr Bild (Content-Hugging-Priorität = 249).

Um zu tun, was Sie wollen, brauchen Sie die Prioritäten umgekehrt.

Das heißt, Sie werden wahrscheinlich feststellen, dass das Layout sowieso besser ist, wenn Sie das Bild auf eine feste Breite oder ein festes Seitenverhältnis einstellen, sonst wird es seltsam aussehen, wenn diese in einer Tabelle sind. Wenn Sie das tun, müssen Sie die Umarmungs-Priorität nicht anpassen, da alles eingeschränkt ist.

Auch @matthews hat Recht, Sie sollten die Beschränkung von Center Y loswerden, weil es bedeutungslos ist, wenn es zusammen mit den Top- und Bottom-Constraints verwendet wird.

1

Sie können Constraints für ImageView angeben, also Leading, Top, Height (Itself), Width (Itself) und Trailing space to label, dann für label, d. H. Top, Trailing und Height.Hope Es wird nach Ihren Anforderungen arbeiten.

0

Hoffnung dies kann Ihnen helfen:

Für UIImageView enter image description here

Für UILabel enter image description here

Verwenden Sie den folgenden Code für die Selbst Sizing Zelle

tableView.estimatedRowHeight = 100.0 
tableView.rowHeight = UITableViewAutomaticDimension