Wie kann ich ein UIScrollView in einem UIScrollView verschachteln, so dass der Benutzer das innere UIScrollView scrollen kann?

8

Ich habe das noch nicht ausprobiert, aber ich nehme an, dass ich das Scrollen der Eltern-Scroll-Ansicht deaktivieren müsste, sobald ich weiß, dass der Benutzer in der Kind-Scroll-Ansicht scrollen möchte, richtig?

Beide Scroll-Ansichten scrollen horizontal.

Wie kann ich die Scroll-Erkennung des Elternteils vorübergehend deaktivieren? Oder gibt es einen anderen Weg?

    
Thanks 26.05.2009, 12:13
quelle

4 Antworten

9

UIScrollView hat eine Eigenschaft namens scrollEnabled , die Sie auf NO setzen können, um das Scrollen in der übergeordneten Bildlaufansicht zu deaktivieren.

Ich habe es noch nicht ausprobiert, aber Sie können vielleicht feststellen, dass es die richtige Sache ist, dh die innere Bildlaufansicht scrollt, bis sie nicht mehr scrollen kann, an welcher Stelle die äußere Bildlaufansicht scrollt.

    
hatfinch 26.05.2009, 19:08
quelle
1

Es ist sehr möglich. Der einfachste Weg ist, die scrollEnabled -Eigenschaft zu deaktivieren. Sie können auch versuchen, die UIScrollView der äußeren contentSize auf ihre Grenzen zu setzen, so dass sie nicht scrollt. Je nachdem, was Sie benötigen, können Sie auch No auf bounce setzen, aber das wird Ihre Scroll-Ansicht im Grunde wie eine normale UIView aussehen lassen.

Wenn Sie die Kontrolle über alle untergeordneten UIScrollView haben, können Sie UIScrollViewDelegate protocol implementieren, aber wenn Sie dies nicht tun, oder Ihr Kind UIScrollView ist wirklich ein UITableView oder UICollectionView , dann kannst du nicht wirklich auf das UIScrollViewDelegate Protokoll zurückgreifen, aber vergiss nicht UIScrollView kommt mit panGestureRecognizer und du kannst damit spielen. Ein mächtiger, aber schwerfälliger Weg besteht darin, einen Beobachter in die panGestureRecognizer -Eigenschaft von state einzufügen, so dass Sie alle Ereignisse erfassen können, ohne dass Sie Delegat der betreffenden UIScrollView sind.

    
BrianDotNet 23.10.2013 03:34
quelle
0

Ich tat dies und es bewirkt, dass der Eltern-scrollView NICHT mehr blättert, was fein ist aber mein Kind scrollView, das über presentModalViewController gedrückt wurde, reagiert immer noch nicht auf Scroll-Ereignisse (zB Scrollen nach oben oder unten) . Mir fehlt offensichtlich etwas ...

BEARBEITEN : Hat es endlich geschafft, mit 'scrollEnabled' in der Elternansicht zu arbeiten. Danke.

    
Franky 07.09.2009 20:13
quelle
0

Ich hatte das gleiche Problem, bis ich die contentSize der inneren ScrollView dynamisch hoch gesetzt habe:

%Vor%

Offensichtlich ist dies nur ein hartkodiertes Beispiel. Sie sollten die Höhe einstellen, die benötigt wird, um den gesamten Inhalt der Ansicht anzuzeigen, und möglicherweise wird am Ende kein Scroll benötigt.

Es scheint, dass die Höhe der scrollView mit dem IBuilder nicht ausreichend ist, also wurde kein scroll benötigt und deshalb dachte ich, dass das Sweep-Ereignis nicht die innere scroll erreicht.

Hoffe, das hilft!

    
Fede Mika 02.02.2011 20:35
quelle