2016-07-07 1 views
0

Comment utiliser UIStepper comme simple multiplicateur/décroiseur?Utiliser le stepper comme multiplicateur/décroissant dans Swift

La seule façon que j'ai trouvé est de définir la valeur de la UIStepper-1 chaque fois que je perçois une action et comparer la valeur à 1 quand je surprends une action:

@IBAction func onStepperValueChangedAction(sender: UIStepper) { 
     if sender.value > 1 { 
      increaseValue() 
     } else { 
      decreaseValue() 
     } 

     sender.value = 1 
    } 

Ne pas oublier pour définir la valeur par défaut du UIStepper à 1.

+1

Répondez-vous à votre propre question? Ou y a-t-il une question quelque part là-dedans? –

+0

Je voudrais savoir s'il y a une meilleure solution. – Jojo44

Répondre

0

essayez cette

var previousValue = 0 
    @IBAction func onStepperValueChangedAction(sender: UIStepper) { 

      if sender.value > previousValue { 
       increaseValue() 
      } else { 
       decreaseValue() 
      } 
      previousValue = sender.value 
     } 
+0

Cela ne fonctionnera pas si j'atteins la valeur maximale. Exemple: Si la valeur maximum du stepper est 10, la valeur est 8 et j'utilise le bouton d'augmentation 3 fois, seules les 2 premières actions seront prises en compte. Le troisième sera interprété comme une diminution. – Jojo44

+0

si sender.value> = sender.maximumValue renvoie –

+0

Cependant, le 3ème essai ne fonctionnera pas. C'est mieux car ça ne sera pas interprété comme une diminution mais dans ce cas ça ne sera pas du tout interprété. Je pense qu'il est préférable de réinitialiser la valeur du stepper chaque fois que je l'ai fait. – Jojo44

0

Vous pouvez essayer, si cela convient à votre besoin

if sender.value > prevCnt { 

     increasedValue() 
     sender.maximumValue = sender.maximumValue + 1 
    } 
    else if prevCnt >= 1 { 

     decreasedValue() 
     sender.maximumValue = sender.maximumValue - 1 
    }