Lets sagen, ich habe 10 Zeilen mit Zahlen von 1 bis 10. Ich brauche Scroll-Effekt wie 1 bis 10 zu 1 bis 10 ... Ich erreichte dies mit scrollToRowAtIndexPath
und setContentOffset
. Das Problem Ich möchte das Scrollen verlangsamen, bevor ich meine Logik anwenden, um diese Rekursion zu stoppen. Also gibt es eine Möglichkeit, dass ich die Scroll-Geschwindigkeit für scrollToRowAtIndexPath
verringern kann. ? Bitte nicht vorschlagen, decelerationRate, da Scrolls hier alle programmatisch sind, keine Benutzerinteraktionen. Danke im Voraus.UITableView: scrollToRowAtIndexPath oder setContentOffset Animationsgeschwindigkeit
0
A
Antwort
0
Sie können etwas tun:
[UIView animateWithDuration:durationInSeconds animations:^(void){
[tableView setContentOffset:offset animated:NO];
}];
Sie müssen nur den Offset zu berechnen. Wenn Ihre Zeilen gleicher Höhe, dann kompensieren die einfach berechnet:
CGPoint offset = CGPointMake(0, indexPath.row * rowHeight);
und wenn die Höhe variiert, dann müssen Sie dies tun:
CGFloat offsetY = 0;
for (NSInteger i = 0; i <= indexPath.row; i++) {
offsetY += [tableView.delegate tableView:tableView heightForRowAtIndexPath:indexPath];
}
CGPoint offset = CGPointMake(0, offsetY);
EDIT:
Sie auch verwenden können scrollToRowAtIndexPath:animated:
Methode mit animated
auf NO
im Animationsblock anstelle von setContentOffset
festgelegt, und dann müssen Sie den Offset nicht selbst berechnen.
1
Rufen Sie einfach Ihre scrollToRowAtIndexPath oder setContentOffset Methoden innerhalb +(void)animateWithDuration:animations: Block.
Schauen Sie sich diese Antworten für weitere Informationen:
Change the speed of setContentOffset:animated:?
scrollToRowAtIndexPath:atScrollPosition:animated scrolling too slow
Verwandte Themen
- 1. UITableView scrollToRowAtIndexPath
- 2. iOS UITableView scrollToRowAtIndexPath nicht mehr funktioniert
- 3. UITableView scrollToRowAtIndexPath: atScrollPosition: animiert: Lag meine App ernst
- 4. scrollToRowAtIndexPath funktioniert nicht ordnungsgemäß?
- 5. UIScrollView setContentOffset: topOffset Problem
- 6. Ändern UIImageView Animationsgeschwindigkeit
- 7. Javafx betiteltepane Animationsgeschwindigkeit
- 8. UIScrollview setContentOffset mit nichtlinearer Animation?
- 9. Gibt es eine Möglichkeit, eine animierte UITableView/UIScrollView setContentOffset abzubrechen: animiert :?
- 10. Ändern Objekt Animationsgeschwindigkeit in Java
- 11. Wie benachrichtigt werden, wenn scrollToRowAtIndexPath beendet
- 12. JS/CSS Animationsgeschwindigkeit relativ zur Objektgröße
- 13. UITableView Bildlauf nicht Zelle
- 14. UITextView, setContentOffset und fehlender unterer Teil
- 15. scrollToRowAtIndexPath scrollt nicht zu inaktiven/unbelasteten Zellen
- 16. Kann ich die Animationsgeschwindigkeit von presentModalViewController erhöhen?
- 17. UITableView scrollViewDidScroll gefeuert auf Animation
- 18. UITableView Abschnitt beim Scrollen oben einfügen
- 19. UITableView scrolltobottom, die == UITableViewAutomaticDimension
- 20. UITableView Benutzerdefinierte Bildlaufleiste
- 21. UITableView Ausführung nicht zu scrollViewDidScroll oder scrollViewShouldScrollToTop
- 22. beginnend bei Zeile 2 oder 3 UITableView
- 23. IOS: Wahl eines UIScrollView oder eines UITableView
- 24. Scrolle zum letzten UITableViewCell mit scrollToRowAtIndexPath: atScrollPosition: animiert mit den Methoden NSFetchedResultsControllerDelegate
- 25. UITableview Indizierung mit 1 Abschnitt
- 26. UITableView scrollt nicht nach unten
- 27. Infinite Scrolling - setContentOffset: stoppt die Verlangsamung von UIScrollView
- 28. UITextView setContentOffset: CGPointZero in layoutSubviews funktioniert nicht in iOS8
- 29. UITableView Scrollen zu einer bestimmten Position
- 30. scrollToRowAtIndexPath scrollt nicht korrekt nach unten auf iOS 8
Klingt gut. Meinst du, sobald ich mich dazu entschließe, langsamer zu werden, komme ich aus meiner kreisförmigen Scroll-Rekursionslogik heraus und mache das obige, um meine beabsichtigte Zeile zu erreichen, die einen langsamen Scroll-Effekt ergibt? – Avi
Ja, dies verlangsamt den Bildlauf und Sie legen die Dauer mit dem Parameter 'durationInSeconds' in der animateWithDuration-Methode fest. Wie Alex in einer anderen Antwort vorgeschlagen hat, können Sie auch scrollToRowAtIndexPath: animated: method mit animierter Menge im Animationsblock anstelle von setContentOffset auf NO setzen, und dann müssen Sie den Offset nicht selbst berechnen. –
Ja, versucht, dass. WOrks. – Avi