Wie herausfinden, ob scrollView zu werden, gescrollt, nach oben oder unten
Möchte ich herausfinden, wenn eine scrollView ist, gescrollt, nach oben oder unten. Idealerweise möchte ich nur eine nennen, wenn der scrollView ist, gescrollt, nach oben oder unten. Ich versuchte dieses aber es wird offensichtlich nicht erzähl mir nichts über die Richtung:
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
NSLog(@"%.2f", scrollView.contentOffset.y);
}
contentOffset immer 0 - es ist egal, ob ich gescrollt, nach oben oder unten. Jetzt könnte ich einfach die check-in -(void)scrollViewDidScroll: wenn der offset ist positiv oder negativ, aber das ist ständig gefordert. scrollViewWillBeginDragging hat den Vorteil, dass Sie nur einmal aufgerufen, und das ist, was ich brauche. Gibt es so etwas wie scrollViewDidBeginDragging? Ich habe nichts gefunden in den docs. Eine intelligente Lösung?
- Was ist, wenn der Benutzer legt Ihren finger nach unten, beginnt nach unten scrollen, dann ändert Ihre Meinung und blättert?
- Wenn er Schriftrollen < 0, dann müsste ich die Aktion Abbrechen, die ich rief, wenn er gescrollt > 0.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine deklarierte Eigenschaft, uns wissen zu lassen, dass der tableview beginnt zu Blättern. Wir verwenden ein BOOL genannt
scrollViewJustStartedScrolling
.In
scrollViewWillBeginDragging
legen Sie es auf true:In
scrollViewDidScroll
etwas wie:Store die erste " Inhalts-offset in
scrollViewWillBeginDragging:
Und überprüfen Sie es auf jeden
scrollViewDidScroll:
Es IST möglich, diese Prüfung in
scrollViewWillBeginDragging
vor jedem scrollen registriert ist. (IOS 5+). Durch die Untersuchung der scroll-view built-in pan gesture-recognizer können Sie überprüfen Geste Richtung.Ich fand es sehr nützlich, in dem Abbrechen von Blättern, die auf den ersten ziehen bewegen, wenn die Benutzer ziehen in eine verbotene Richtung.
CGPoint velocity = [scrollView.panGestureRecognizer velocityInView:scrollView.superview];
statt.else{…}
wäredragging left
. Überprüfen Sie für die übersetzung/velocity-Werte von null, um sicher zu sein.