2016-03-20 10 views
2

Ich habe ein Label in einem Scrollview, das kann nur 1 Zeilen und so viele wie 10 Zeilen. Ich habe Probleme herauszufinden, wie die Inhaltsgröße von scrollview dynamisch gestaltet werden kann, damit sie sich entsprechend dehnt.Wie scrollview mit Subviews einer dynamischen Höhe verwenden?

Ich habe versucht, eine Höhenbeschränkung von> = 100 (beliebige Zahl) hinzuzufügen, aber dann beschwerte es sich über eine Inequality Constraint Ambiguity.

img

Antwort

2

Schnell Antwort

  1. Entfernen Sie die aktuelle Höhe Einschränkung auf dem Etikett.
  2. Stellen Sie sicher, dass die Etiketten Lines Eigenschaft auf 0 und Line Breaks auf Word Wrap eingestellt ist.
  3. Fügen Sie den Ansichten oberhalb und unterhalb der Beschriftung vertikale Abstandseinschränkungen hinzu.
  4. Stellen Sie sicher, dass für jede Ansicht vertikale Abstandseinschränkungen vom oberen bis zum unteren Rand vorhanden sind, damit die Bildlaufansicht die Höhe ihres contentView ableitet.

Erklärung

Damit die Scroll-Ansicht dessen Inhalt Größe abzuleiten es Einschränkungen von Rand zu Rand Subviews haben muss - vorstellen, dass es wie ein Ballon der Inhalt ist die Luft im Inneren, die auf der schiebt Wand, um den Ballon so groß wie möglich zu machen. Die Einschränkungen von den Unteransichten bis zu den Rändern ermöglichen es, dass die Größe der Unteransichten die Wände der Inhaltsansicht herausdrückt.

Für die Etiketteneinstellung die Lines Eigenschaft zu 0 bedeutet, dass es eine variable Anzahl von Zeilen haben wird, wie Sie möchten. Die Eigenschaft Line Breaks, die auf Word Wrap gesetzt ist, bedeutet, dass Wörter nicht abgeschnitten (abgeschnitten) oder in Zeichen zerlegt und stattdessen auf die nächste Zeile als ganze Wörter geschoben werden.

0

Wenn Sie nicht über eine Höhe Einschränkung angeben für eine UILabel es eine Höhe nehmen, die den ganzen Text passt. Stellen Sie nur sicher, dass die Anzahl der Zeilen auf 0 gesetzt ist und dass in Ihrem Label alle Randbedingungen festgelegt sind.

0

Dieser Tech-Hinweis von Apple erläutert, wie Sie einen Scrollview mit scrollbarem Inhalt unter Verwendung des automatischen Layouts https://developer.apple.com/library/ios/technotes/tn2154/_index.html korrekt konfigurieren können.

Konzeptionell in Ihrem Fall ist es das, was Sie tun müssen:

Ansicht Hierarchie:

MainView -> ScrollView -> ContentView -> UILabel

  1. Scroll an allen Kanten der Hauptansicht beschränkt ist,
  2. ContentView ist auf alle Kanten der ScrollView
  3. beschränkt und das UILabel ist auf alle Kanten der ContentView beschränkt (s et UILabel Anzahl der Zeilen 0 und entfernen Sie die Höhe Constraint Sie gerade angelegt haben)

Der Schlüssel hier ist zu erkennen, dass die Größe des content hängt nur von der Größe des UILabel, um die UILabel Höhe erstreckt sich so macht das ContentView. Dadurch kann scrollView automatisch auf contentSize schließen und das Scrollen bei Bedarf aktivieren.

Verwandte Themen