Wie macht man Uiscrollview nur vertikales Scrollen für iOS?

8

Ich versuche, layout in scrollview mit diesem einen Tutorial Ссылка

zu machen >

Und erhalten Sie das folgende Ergebnis Ссылка

Es wird für alle Hinweise oder Tutorial-Links geschätzt. Es braucht nur vertikales Scrollen

    
Alexey Zakevich 27.05.2015, 13:01
quelle

9 Antworten

10

Ich bin sicher, dass es andere Möglichkeiten geben muss, dies zu tun, aber eine schnelle Lösung ist:

1.) Erstellen Sie eine Breitenbeschränkung für ContentView in Storyborad.

2.) IBOutlet diese widthContraint und setzen Sie ihren Wert auf die View-Frame-Breite in viewDidLoad.

Angenommen, der Name des Constraint-Auslasses lautet contentViewWidthContraint.

%Vor%

Eine weitere Alternative, die Sie vom Storyboard aus vornehmen können, besteht darin, die Breite der Inhaltsansicht vom Storyboard oder der Bildlaufansicht aus auf die Breite der Ansicht anzupassen, wenn Scrollview bereits eine Gleichbreite mit Superview hat. Fügen Sie die "Equal Width" -Begrenzung aus Contentview entweder zu self.view oder zu Scrollview hinzu (wenn scrollview, hat bereits die Breite contraint)

    
Jen Jose 28.05.2015, 08:29
quelle
7

Haben Sie die "ContentView" -Breite so eingerichtet, dass sie mit der Bildlaufbreite übereinstimmt? Ich hatte das gleiche Problem und habe es mit " Gleiche Breite " behoben.

" Gleiche Breite " teilt Ihrem "ContentView" mit, die gleiche Breite der "Scroll-Ansicht" zu verwenden, die dem Bildschirm entsprechen sollte, wenn Sie den Constrain korrekt eingerichtet haben.

Sie können dies einfach auf dem Storyboard tun.

  1. Drag and drop, mit Rechtsklick (wichtig !!!), von "ContentView" zu "ScrollView"
  2. Lassen Sie den Klick los, Sie werden aufgefordert, ein Menü auszuwählen und " Gleiche Breite " auszuwählen.

Dies sollte Ihr Problem mit dem Scrollview mit AutoLayout vom Storyboard Editor beheben.

Sie können eine vollständige Anleitung zur Verwendung von ScrollView mit Autolayout und Storyboard finden hier .

Ich hoffe, das ist nützlich für Sie:)

    
Jesuslg123 04.06.2015 08:42
quelle
2

Stellen Sie im Storyboard die Breite der in Ihrem UIScrollView enthaltenen Elemente auf die Breite dieses UIScrollView ein (indem Sie alle Elemente und das UIScrollView im Panel auf der linken Seite Ihres Storyboards auswählen und dann die Bedingung 'Equal Widths' setzen) unter "Pin" am unteren Ende des Storyboards). Wenn Sie die rechten Seiten der Elemente an die von UIScrollView anheften, funktioniert das nicht, da die Größe der "Anzeigeansicht" an die Breite des größten Elements angepasst wird und diese kleiner ist als die Breite von UIScrollView erscheint nur auf der linken Seite ausgerichtet.

    
MCS 13.10.2015 17:22
quelle
2

Es gibt auch eine andere Möglichkeit, die ein sehr gutes Ergebnis bietet.

Sie können ein Kontrollkästchen markieren:

O programmgesteuert:

%Vor%     
Markus 18.12.2016 16:54
quelle
0

Setzen Sie UIScrollView constraints wie unter code, so dass es den gesamten Bildschirm belegt. Überschreiten Sie nicht die Bildschirmgröße.

%Vor%     
Jatin Patel 27.05.2015 13:10
quelle
0

Sie müssen die Breite von UIScrollView gleich oder kleiner als die Breite Ihrer Elternansicht festlegen. Zwei Möglichkeiten, es zu tun:

1) Sie können dies im Storyboard über Layouteinschränkungen tun

2) Sie können dies programmatisch tun:

%Vor%     
M Abdul Sami 27.05.2015 13:14
quelle
0

Versuchen Sie, seine Breite auf 0 & amp; Höhe entspricht Inhaltsgröße wie folgt:

%Vor%

Dies wird funktionieren, wie Sie möchten. Probieren Sie es aus & amp; erkläre, ob es immer noch Probleme gibt.

    
iYoung 27.05.2015 13:19
quelle
0

Zum Deaktivieren des horizontalen Bildlaufs können Sie die Inhaltsgröße in der Methode -(void)scrollViewDidScroll festlegen.

%Vor%     
Learning Swift 30.05.2015 07:07
quelle
0

Dies liegt daran, dass die Bildlaufansicht keine Ahnung hat, wo der Inhalt enden soll.

Aber wenn mindestens ein Objekt in Ihrer Bildlaufansicht an eine Ansicht außerhalb der Bildlaufansicht angehängt ist (normalerweise eine Ansicht, in der die Bildlaufansicht sitzt oder eine andere Ansicht einer höheren Ebene, die "weiß" "seine Breite" - die Bildlaufansicht erhält automatisch eine Vorstellung von der gewünschten Breite und scrollt nicht horizontal (es sei denn, die nachfolgende Einschränkung bedeutet, dass der Inhalt außerhalb des Bildschirms liegt).

Besser, wenn für alle Elemente in der Bildlaufansicht die Bedingungen für "nachgestellten Leerzeichen" entweder miteinander oder mit einer Ansicht außerhalb der Bildlaufansicht verbunden sind. Aber nicht die Bildlaufansicht selbst.

Kein zusätzlicher Code oder zusätzliche Einschränkungen erforderlich, damit dies funktioniert.

    
Vitalii 09.12.2017 19:30
quelle