2016-04-13 6 views
2

Ich mache eine benutzerdefinierte UIView mit 2 UILabel darin, wobei jedes UILabel dynamische Höhe hat. Ich kann keine Einschränkungen für die dynamische Höhe festlegen. (Ich bin neu in Auto-Layout & iOS Zeug).UIView mit dynamischer Höhe multiple UILabel

Beide UILabels werden von oben & unten miteinander verbunden und sind horizontal ausgerichtet, um eine Superansicht zu ermöglichen. Und wenn ich Inhalt von einem der UILabel ändere, ändert UIView und UILabel nicht wie erforderlich.

Bitte vorschlagen. Screenshots für aktuelle Einschränkungen hinzufügen

+0

Was sind Ihre Einschränkungen für die UIView? –

+0

Horizontal mittig ausgerichtet, Vertikale Mitte ausgerichtet und Breite – cheeseRoot

+0

scheint richtig zu sein. Können Sie Ihre XIB-Datei senden? –

Antwort

1
  1. die Eigenschaft Lines beiden Etiketten auf 0 in Interface Builder Set.
  2. Stellen Sie sicher, dass keine Beschränkung für die Höhe der Etiketten oder der uiview besteht.
  3. Stellen Sie sicher, dass es keine Einschränkungen für uiview gibt, die eine bestimmte Größe erzwingen. Wenn Sie z. B. eine Einschränkung für uiview für eine bestimmte Entfernung von Superview und eine weitere Einschränkung für eine bestimmte Entfernung vom Superview haben, wird dies nicht der Fall sein Arbeit.
  4. Versuchen Sie, den Text der Etiketten in Code ändern und Höhe sollte automatisch anpassen.
+0

Keine Höhenbeschränkung wird überall hinzugefügt, die Höhe passt sich immer noch nicht an – cheeseRoot

+0

versuchen Sie uilabel.sizetofit() nach dem Ändern des Beschriftungstexts. – Kashif

29

Ich machte eine Demo für Sie nach Ihrer Anforderung. Laden Sie es von unten Link,

Autoresize UIView and UILabel

Schritt für Schritt Anleitung: -

Schritt 1: - Set einschränken zu UIView

1) Führende 2) Top 3) Nachgestellte (Aus der Hauptansicht)

enter image description here

Schritt

2: - Set einschränken 1

1) Label Führende 2) Top 3) Nachgestellte (Von es ist Superview)

enter image description here

Schritt 3: - Set constrain Label 2

1) Führende 2) Top 3) Nachgestellte (Von es ist Superview)

enter image description here

Schritt 4: -heikelsten geben Botton zu UILabel von UIView.

enter image description here

Schritt 5: - (Optional) Legen Sie auf UIButton beschränken

1) Führende 2) Bottom 3) Nachgestellte 4) Feste Höhe (von Hauptansicht)

enter image description here

Ausgabe: -

enter image description here

Hinweis: - Stellen Sie sicher, Anzahl der Zeilen = 0 in Label-Eigenschaft festgelegt haben.

enter image description here

Ich hoffe, diese Informationen genug Autoresize UIView nach UILabel Höhe und Autoresize UILabel Laut Text zu verstehen.

+0

Gute Arbeit ... beste Antwort. –

+0

Danke dir. @ RahulShirphule –

+0

Was ist, wenn die Etiketten horizontal (nebeneinander) nicht vertikal sind? Und die Höhe jedes Etiketts kann zunehmen. Wie können wir der UIView mitteilen, dass sie die Höhe nach diesem wachsenden Label erhöhen soll? –