Existe-t-il un moyen de changer la vitesse d'animation de scrollRectToVisible lors du défilement d'un UIScrollView?Existe-t-il un moyen de modifier la vitesse de scrollRectToVisible?
Répondre
Non, pas avec des méthodes publiques. La durée est fixée à 0,3 seconde.
Il est une API non documentée privée, changer la durée:
@interface UIScrollView(UIScrollViewInternal)
-(void)_setContentOffsetAnimationDuration:(NSTimeInterval)duration;
@end
mais comme toutes les API non documentée, en utilisant cela conduira à un rejet de l 'AppleStore.
En fait, je prévois de distribution ad hoc, pourrait ne pas être un problème. Où puis-je trouver cette méthode définie? Merci! – Moshe
@Moshe: Il doit être déclaré manuellement. Vous pouvez inclure la catégorie ci-dessus dans un fichier qui l'utilise. – kennytm
En fait, je l'ai simplement appelé '[scrollView _setContentOffsetAnimationDuration: 8.0]' et cela a fonctionné. Notez juste que si vous utilisez avec NSTimer, comme moi, la durée de l'animation doit être plus grande que l'intervalle pour le timer, ou elle sera sautée. – Moshe
Réglez simplement l'argument de l'animation sur NO, puis effectuez votre propre animation en utilisant les méthodes de classe d'animation de UIView.
[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{
[scrollView scrollRectToVisible:viewFrame animated:NO];
} completion:nil];
Ceci cependant, n'appelle pas -scrollViewDidScroll: méthodes de délégué. – iamjustaprogrammer
Vrai mais ce n'était pas une exigence de l'auteur de la question. – Camsoft
double possible de [UIScrollView scrollRectToVisible à vitesse personnalisé] (http://stackoverflow.com/questions/1558262/uiscrollview-scrollrecttovisible-at-custom-speed) – Sebastian