73 votes

UISlider par incréments de 5

Comment mes UISlider vont-ils de 1-100 par incréments de 5 ?

166voto

Tuomas Pelkonen Points 5641

Ajouter un délégué comme ceci:

 slider.continuous = YES;
[slider addTarget:self
      action:@selector(valueChanged:) 
      forControlEvents:UIControlEventValueChanged];
 

Et dans la fonction valueChanged, définissez la valeur sur la valeur la plus proche divisible par 5.

 [slider setValue:((int)((slider.value + 2.5) / 5) * 5) animated:NO];
 

9voto

MB. Points 196

Il est une autre façon active le moteur pas à pas de la fonctionnalité. travaille dans un cas général

Exemple:

plage de données 0 - 2800 et je veux les incréments à être dans les 25 valeurs unitaires. Je ferais la suite

  1. configurer la plage de la barre à 0 - (maxRange/unitsteps).
  2. lorsque la valeur a changé de méthode s'exécute utilisation (int)curseur.valeur * unitsteps .

dans l'exemple ci-dessus mon curseur dans un IB de la gamme 0 - 112. et mon code (int)curseur.valeur * 25.

si vous avez alors un champ de texte qui peut être modifié pour l'entrée directe, vous faites juste le contraire de définir la valeur d'un curseur à l' [textfield.texte intValue]/ unitsteps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X