2 Stimmen

UIScrollView friert nach Verwendung von SetContentOffset oder scrollRectToVisible ein

Ich habe eine UIScrollView mit paging aktiviert und ich möchte in der Lage sein, zu Seiten weiter unten in der Zeile zu springen, anstatt durch jede einzelne zu blättern. Ich habe versucht, sowohl setContentOffset als auch scrollRectToVisible zu verwenden. Beide scrollen die Ansicht an den richtigen Punkt, aber nach dem animierten oder nicht animierten Scrollen wird die Scrollview eingefroren und reagiert nicht mehr auf Berührungen. Ich habe versucht, es auf den ersten Responder einzustellen, aber es hat nichts geändert. Ich habe eine Schaltfläche außerhalb der Bildlaufansicht und es funktioniert immer noch gut, nachdem die setContentOffset. Es gibt auch Schaltflächen innerhalb der Scrollview und nicht nur die Scrollview nicht auf Berührung für das Ziehen reagieren, aber die Tasten werden nicht erkennen, die Berührungen entweder.

        [mainScroll setContentOffset:CGPointMake(mainScroll.frame.size.width*4, 0.0) animated:YES];

tldr; Ich kann durch die Ansicht gut blättern, durch alle Seiten, aber wenn ich versuche und rufen Sie eine setContentOffset oder eine scrollRectToVisible bekomme ich "eingefroren" nach der Bewegung.

1voto

zzzzzz Punkte 493

Ich habe es herausgefunden, dummer Fehler.

In meinem scrollViewDidScroll hatte ich:

scrollView.userInteractionEnabled=NO;

und in meinem scrollViewDidEndDecelerating

scrollView.userInteractionEnabled=YES;

und in scrollViewDidEndDragging:willDecelerate

if(!decelerate){scrollView.userInteractionEnabled=YES;}

Ich hatte dies, um Tastendrücke und alle zufälligen Dinge während eines Seitenübergangs zu verhindern. Aber wenn setContentOffset aufgerufen wird, bewirkt es nur, dass scrollViewDidScroll aufgerufen wird und keine der anderen beiden, so dass die UserInteraction nie auf Enabled zurückgesetzt wurde, sondern nur bei Verwendung von setContentOffset.

Einfache Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X