2010-01-10 16 views
17

Was ist der beste Weg, um die Verzögerung eines UIScrollView in iPhone 3.0 sofort zu stoppen?Stop-Verzögerung von UIScrollView

Ich möchte die Verlangsamung von UIScrollView so lange beibehalten, bis sie natürlich stoppt oder der Benutzer eine bestimmte Aktion ausführt, was immer zuerst passiert.

Danke!

+0

Hallo, bist du sicher, dass du so etwas willst? Anwendungsverhalten wie dieses wird von Apple sicher abgelehnt. –

+0

Meinst du, dass, nachdem der Benutzer die Bildlaufansicht angetippt hat und sie mit dem Bildlauf fortfährt, die Bildlaufansicht als Reaktion auf etwas anderes angehalten werden soll, als ob der Benutzer den Finger darauf gelegt hätte, um ihn zu stoppen? – Nimrod

+0

Henrik: Ja. Es sollte keine Ablehnung in dem Kontext verursachen, in dem ich es brauche. – hpique

Antwort

15

Ungeprüfte Vorschlag kommen :)

Wenn die Taste Antippereignis gefangen wird, lesen Sie, was die [Scrollcontent] .x ist, und die auf diesen Wert mit Animation OFF Offset einstellen.

+0

Es funktioniert und schien eine nicht-hacky Art, es zu tun. Aus unerfindlichen Gründen hat dies jedoch dazu geführt, dass die Scroll-Anzeigen an der falschen Stelle aufblitzten. Der folgende Code stoppt die Verzögerung und vermeidet den oben genannten visuellen Effekt: \t myScrollView.showsHorizontalScrollIndicator = NO; \t myScrollView.showsVerticalScrollIndicator = NO; \t [myScrollView setContentOffset: myScrollView.contentOffset animiert: NO]; \t myScrollView.showsHorizontalScrollIndicator = YES; \t myScrollView.showsVerticalScrollIndicator = YES; Hässlicher Code. – hpique

+0

Froh, dass es funktioniert :) "Scroll-Indikatoren blinken an der falschen Stelle" bedeuten, dass die Bildlaufleisten nicht auf der rechten Seite und der Unterseite waren? Ich denke, Sie haben [scrollView setPagingEnabled: YES]; und das könnte die scrollView vielleicht etwas verwirren. ScrollView: "Die Einstellungen sagen scrollen zur nächsten Seite und zeichnen Sie die ScrollBars an den Koordinaten x und y" Sie: "Stoppen Sie, was Sie tun und herauszufinden, wo die Bildlaufleisten zu zeichnen!". Ich habe gerade etwas Ähnliches gemacht, wo ich eine scrollView gemacht habe, die auf alle 80 px geklickt hat, aber ich habe animation verwendet: JA und das könnte es ein bisschen mehr Zeit geben, um sich anzupassen? – RickiG

+3

[scrollView setContentOffset: Offset animiert: NEIN] funktioniert für mich in iOS 4.2. –