web-dev-qa-db-de.com

UIScrollView im Storyboard funktioniert nicht mit iOS 8-Größenklassen und Autolayout

Ich versuche also, eine UIScrollView-Datei nur im Storyboard zu erstellen, die es mir ermöglicht, Laufschriftbeschriftungen für mehr als die Höhe des virtuellen Computers hinzuzufügen. Folgendes habe ich getan: 

  1. Erstellt UIScrollView, das die Größe einer beliebigen Breite beliebiger Höhe VC einnahm

  2. Einschränkungen für den Abstand zum nächsten Nachbarn oben, unten, links und rechts wurden zu 0 gemacht

  3. Es wurde eine Ansicht erstellt, die eine subView der UIScrollView mit der gleichen Breite wie die Breite beliebiger Höhe VC, aber mit einer Höhe von 1500 ist (da ich nur vertikal scrollen möchte). 

  4. Setzen Sie die Bedingungen für NUR links, oben und rechts auf den nächsten Nachbarn als 0, und setzen Sie die Höhenbedingung auf 1500.

  5. Ich stelle ein Etikett oben auf der subView und unten auf

Wenn ich die App auf einem iPhone 6 starte, scrolle ich nicht vertikal so, wie ich es möchte. Irgendwelche Ideen, warum das nicht funktioniert? Danke im Voraus.

22
Lucas

Um die Bildlaufleiste zu erhalten, müssen Sie die Unteransicht (die "Inhaltsansicht") oben, links, unten und rechts von der Bildlaufansicht fixieren . Außerdem müssen Sie sie (zur "Inhaltsansicht") an geben explizit (= nicht in Bezug auf die Bildlaufansicht) Höhe und Breite, da diese von der Bildlaufansicht zur Berechnung der Inhaltsgröße verwendet werden. In Ihrem Fall setzen Sie die Breite der Breite der Hauptansicht VC und die Höhe auf 1500 . Wenn Breite oder Höhe größer als die Bildlaufansicht ist, wird gescrollt.

Scroll-Ansichtseinschränkungen (an Hauptansicht angeheftet)

scroll view constraints

Inhaltsansicht (festgehalten an Bildlaufansicht + Höhe 1500, Breite = Breite der Hauptansicht) + Beschriftungsbeschränkungen (als Beispiel: 20 20 aus der Inhaltsansicht oben links)

content view + label constraints

45
valfer

Für eine einfachere Visualisierung habe ich ein Video dazu erstellt.

Video zum Erstellen einer vertikalen Ansicht (nur vertikal) in iOS

8
Marco Almeida

Haben Sie den Inhalt größer als der Bildschirm selbst eingestellt? In Ihrem Fall einfach größer.

Wie in der Apple-Dokumentation angegeben: "Sie müssen die contentSize-Eigenschaft auf die Größe des scrollbaren Inhalts setzen. Dadurch wird die Größe des scrollbaren Bereichs festgelegt."

1
pablogthuillier

Die einzige Lösung ist das Hinzufügen von Abhängigkeiten rechts und unten in der unteren Unteransicht der untergeordneten Ansicht der Bildlaufansicht . Überprüfen Sie außerdem, ob alle Ansichten von oben nach unten zusammen mit der Höhe ..__ die richtigen Nebenbedingungen haben. Für die Bildlaufansicht ' Die Wrapper-Ansicht fügt der Superview-Ansicht gleiche Breite und gleiche Höhe hinzu.

0
komall