Ich habe eine View-Controller-Ansicht in IB ausgelegt, und insbesondere habe ich drei Ansichten, die alle identische Layout-Einschränkungen in Bezug auf ihre Frames haben und alle gesetzt wurden zu UIScrollView
. Ihr Inhalt ist unterschiedlich (ich blende in einer Ansicht und dann in einer anderen, während der Benutzer durch eine Progression navigiert). Ich habe alle drei dieser Ansichten zu UIScrollView
und dann ließ ich den folgenden Code in meine .m
Datei in viewWillAppear
:UIScrollView scrollt nicht, obwohl fast identische andere in der gleichen Ansicht Controller
NSArray <UIScrollView *> *viewsForScrolling = @[view1, view2, view3];
for (UIScrollView *smallView in viewsForScrolling) {
NSLog(@"here is the class %@", [smallView class]);
smallView.scrollEnabled = YES;
smallView.contentSize = CGSizeMake(smallView.frame.size.width, smallView.frame.size.height*1.4);
smallView.delegate = self;
}
Dies ist der Trick schön mit view1
tun und view3
aber view2
nicht nicht scrollen. Ich habe überprüft, dass sie alle die gleiche Klasse haben, UIScrollView
und dass sie alle mit der erwarteten Instanzvariable verbunden sind.
Der Hauptunterschied zwischenview2
und view1
ist view3
dass view 2
eine UITableView enthält, für den Bildlauf nicht aktiviert ist. Das ist der einzige Unterschied, den ich im Vergleich zu den anderen Ansichten herausfinden kann.
Ich habe versucht, auch die folgenden:
- für
view2
log ich den Wert vonscrollingEnabled
unduserInteractionEnabed
und diese sind beideYES
wie ich - Ich habe versucht, Neuordnen der Ansichten in ihrer z-Komponenten innerhalb IB wünschen würde . Dies machte keinen Unterschied.
- versuchte ich programmatisch die
contentSize
vonview2
wieder außerhalb der Schleife Ändern der Größe vielleicht oben denken, es ‚nicht genug‘ war, aber das war nicht der Fall - ich, dass
scrollViewDidScroll
prüft wird nicht wieder laufen, wennview2
sichtbar ist und die anderen Ansichten sind nicht sichtbar. - Ich änderte die Hintergrundfarbe von
view2
, um sicherzustellen, dass es so groß war, wie ich dachte, dass es war und dass ich es tatsächlich berührte, als ich versuchte zu scrollen. Kein Würfel. - Nach dem Vorschlag unten, habe ich versucht, Benutzerinteraktion für die Tabellenansicht in
view2
enthaltenen deaktivieren. Die Interaktion wurde deaktiviert, dies führte jedoch nicht zum Scrollen. die Scroll-Ansicht vollständig aus
view2
Entfernen tut ermöglichen inview2
Scrollen aber das ist nicht wirklich eine Lösung.Ich könnte wirklich eine andere Reihe von Augen und zusätzliche Vorschläge, was zu beheben. Vielen Dank.
Sie versuchen sollten, für die Tabelle Interaktion mit dem Benutzer zu deaktivieren Aussicht. Dies wird wahrscheinlich dazu führen, dass die Bildlaufansicht wie erwartet funktioniert. Von dort aus können Sie verschiedene Lösungen für die erneute Aktivierung der Benutzerinteraktion betrachten. –