UIScrollview + Auto-Layout scheint in iOS8 / Xcode 6-Vorschau nicht zu funktionieren?

8

Die folgenden Schritte für UIScrollView + Auto-Layout funktionierten für mich, aber nicht in der iOS8 / Xcode 6-Vorschau: (mit Storyboard, Größenklasse aktiviert):

  1. fügen Sie der Stammansicht einen Bildlauf hinzu.
  2. pin null Leerzeichen an allen Kanten der Super View.
  3. Fügen Sie eine UIView (contentView) zur obigen scrollview hinzu.
  4. pin null Leerzeichen an allen Kanten der scrollview
  5. Fügen Sie contentView einige Widgets hinzu und ändern Sie die Höhe von contentView auf 2000.

= & gt; Dieser ContentView scrollt in iOS 7, aber ich kann nicht die gleichen Schritte in iOS 8 Vorschau arbeiten.

Selbst wenn es in iOS 7 funktioniert, ist es möglich, dass ich nicht richtig handle? Irgendwelche Vorschläge?

    
Sean 17.07.2014, 05:11
quelle

2 Antworten

7

Ich bin überrascht, dass ich dazu keinen Kommentar mehr gesehen habe. Das interne Autolayout der Scroll-Ansicht ist in iOS 8 (bis zum Zeitpunkt der Erstellung dieses Dokuments) weitgehend unterbrochen.

BEARBEITEN Dies wurde in Seed 5 behoben, daher sollte diese Notiz ignoriert werden!

Die Regel soll sein (siehe Ссылка ), dass wenn Der Inhalt einer Bildlaufansicht (seine Unteransicht oder Teilansichten) wird an alle vier Grenzen der Bildlaufansicht angeheftet und legt die Inhaltsgröße fest.

In iOS 8 schlägt dies jedoch fehl - aber auf eine seltsame Art und Weise. Es schlägt nur fehl, wenn die Einschränkungen, die die Höhe und Breite der Untersichten bestimmen, absolut im Gegensatz zu intrinsisch sind.

Betrachten wir zum Beispiel den Code am Ende dieser technischen Notiz, wo eine Scroll-Ansicht und eine wirklich große Bildansicht im Code erstellt werden (hier ist es; ich habe einen kleinen Tippfehler korrigiert, wo ein At-Zeichen war fallen gelassen):

%Vor%

Dieser Code funktioniert (vorausgesetzt, Sie haben ein wirklich großes Bild), weil die Bildansicht nach intrinsischen Einschränkungen sortiert ist. Aber nun ändere die letzten zwei Zeilen wie folgt:

%Vor%

Nun haben Sie eine Bildlaufansicht, die auf iOS 7 scrollbar ist, aber auf iOS 8 NICHT scrollbar ist. Weitere Untersuchungen zeigen, dass dies daran liegt, dass die Inhaltsgröße bei (0,0) bleibt; Es berücksichtigt nicht die absoluten Einschränkungen für Breite und Höhe der Inhaltsansicht.

    
matt 21.07.2014, 17:17
quelle
0

Verwenden Sie den folgenden Schritt für UIScrollView + AutoLayout

  1. Fügen Sie der Stammansicht eine Bildlaufansicht hinzu
  2. Hinzufügen enthält die Ansicht der obigen Bildlaufansicht

Hinzufügen Folgende Einschränkung für die Bildlaufansicht

  1. Nach Leerzeichen zu Super View = 0
  2. Leading Space zu Super View = 0
  3. Oberster Platz für Super View = 0
  4. Unterer Raum bis Super View = 0

Folgende Einschränkung hinzufügen für die Ansicht der Bildlaufansicht (In diesem Fall ist die Bildlaufansicht Super View)

  1. Nach Leerzeichen zu Super View = 0
  2. Leading Space zu Super View = 0
  3. Oberster Platz für Super View = 0
  4. Unterer Raum bis Super View = 0
  5. Höhe der enthaltenen Ansicht (wenn Sie vertikales Scrollen verwenden) ansonsten Breite der enthaltenen Ansicht (wenn Sie horizontales Scrollen verwenden).
  6. Horizontale Canter-Ausrichtung (wenn Sie vertikales Scrollen verwenden), andernfalls vertikale Canter-Ausrichtung (wenn Sie horizontales Scrollen verwenden).
Hushain Mubarik Khan 31.07.2015 06:01
quelle

Tags und Links