2011-06-10 3 views
1

J'essaye de ralentir l'animation de l'UISlider en changeant les valeurs.iOS - Comment ralentir l'animation UISlider?

Jusqu'à présent, j'ai essayé l'ancienne méthode d'animation UIView:

[UIView beginAnimations:@"slider" context:nil]; 

[UIView setAnimationDuration:5.0]; 
[self.slider setValue:2 animated:YES]; 

[UIView commitAnimations]; 

Et les nouveaux blocs méthode basée sur:

[UIView animateWithDuration:5.0 
     animations:^{ 
      [self.slider setValue:2 animated:YES]; 
       }]; 

J'ai essayé avec et sans l'ensemble de la valeur animated:YES. Dans tous les cas, le curseur s'anime simplement à la vitesse par défaut.

Y a-t-il une autre tactique que je devrais envisager pour personnaliser la vitesse de l'animation?

Devrais-je sous-classer le curseur et y écraser quoi que ce soit?

Répondre

1

Vérifiez la OBSlider, une sous-classe UISlider avec la vitesse de récurage variable (comme vu dans l'application iPod sur iOS) par Ole Begemann. Je ne dis pas que c'est exactement ce que vous voulez mais vous pouvez voir comment il est implémenté depuis the code is hosted at GitHub. Fondamentalement, il UISlider et sous-classes remplace les méthodes de suivi tactile:

  • beginTrackingWithTouch:withEvent:
  • continueTrackingWithTouch:withEvent:
  • endTrackingWithTouch:withEvent: