7

Ich habe ein Projekt, wo ich eine benutzerdefinierte Registerkarte, einen Navigationscontroller und einen Seitenaufrufcontroller in einer Ansicht benötigen. Es ist mir gelungen, dies zu erstellen, aber ich stoße auf einen Fehler, den ich nicht lösen kann:Warum verhält sich dieses UIScrollView nicht richtig?

Der erste Viewcontroller in meinem Pageviewcontroller setzt seine Ansichtshöhe nicht richtig (oder besser seinen Y-Wert). In dem Moment, in dem das Scrollen stattfindet, wird dies auf die richtige Höhe eingestellt.

Ich habe ein minimales Testprojekt erstellt here.

Edit: Ich habe versucht, collectionView.contentInset und automaticallyAdjustsScrollViewInsets mit allen möglichen Kombinationen einstellen, aber ohne Erfolg. Jemand?

Antwort

3

Sie wurden mit der Navigationsleiste und der unteren Leiste verwechselt. Hier ist, wie es in Ihrem Projekt in Storyboard für PageViewController:


arbeiten sollte Ich habe auch Zeile automaticallyAdjustsScrollViewInsets = false entfernt, und deaktivieren Sie es im Storyboard.
Sie können feste Projekt here

+0

Danke Mann! Es tut mir leid, dass ich nicht pünktlich war, um das Kopfgeld zu vergeben. Ich bin sehr zufrieden mit dieser Antwort! Ich werde über diese "extend edges" -Dinge nachlesen und werde wahrscheinlich einiges darüber lernen, wie UIScrollView funktioniert. Danke noch einmal! – vrwim

+0

Also hatte ich dies und ein anderes Problem war, dass meine 'UINavigationBar' noch nicht die richtige Höhe hatte, also überprüfte ich, ob es 'nil' ist und benutzte einen hartcodierten Wert, um das Auftreten des Problems zu verhindern – vrwim

3

Versuchen Sie automaticallyAdjustsScrollViewInsets = false für Ihren Pageviewcontroller hinzuzufügen. Beachten Sie, dass die erste Seite nicht unter dem oberen Balken ist, während sie nach dem Scrollen ist.

+1

Dies funktioniert. Ein Seitenaufruf-Controller verwendet auch eine Bildlaufansicht, auf die die automatischen Einfügungen des Ansichtscontrollers angewendet werden. Die Bildlaufansicht des Seitenaufruf-Controllers verhindert auch das Scrollen nach oben, wenn Sie auf die Statusleiste tippen. –