2010-08-16 7 views
3

J'utilise plusieurs UISliders sur un formulaire, et je veux juste une méthode pour garder une trace des changements de curseur.UISlider expéditeur valuechanged

Maintenant, j'ai une méthode:

- (IBAction) slider1ValueChanged:(UISlider *)sender { 
    somelabel.text = [NSString stringWithFormat:@" %.1f", [sender value]]; 
} 

Mais parce que j'utilise plusieurs curseurs, je veux utiliser une instruction switch pour tirer un curseur particulier, donc par exemple si je 2 curseurs, et ils ont tous deux utiliser la méthode ValueChanged ci-dessus, je veux quelque chose comme:

- (IBAction) slider1ValueChanged:(UISlider *)sender { 
switch(SLIDERID) 
case SLIDER1: 
     blabla; 
     break; 
case SLIDER2: 
     update other label; 
     break; 
case default: 
     break; 
      somelabel.text = [NSString stringWithFormat:@" %.1f", [sender value]]; 
    } 

Qui peut m'aider?

Merci d'avance!

Répondre

10

Il vous suffit de comparer le paramètre sender à vos curseurs pour comprendre que l'on propose:

-(IBAction) sliderValueChanged:(UISlider*)sender { 
    if (sender == self.temperatureSlider) { 
     // ... 
    } else if (sender == self.altitudeSlider) { 
     // ... 
    } // etc 
} 

Accrocher ensuite tous vos curseurs à cette action en IB ou via -setTarget.

+0

Ow mon dieu .. Merci ... Je suis tellement fatigué que je pensais Bien trop compliqué !! Merci, cela l'a résolu !! – CyberK

0

attribuer une valeur à la propriété de l'étiquette d'un composant d'interface utilisateur dans IB et d'évaluer à l'aide d'un boîtier de commande comme ceci:

typedef enum Commands { 
    CMD_PLAY_MUSIC = 0, 
    CMD_STOP_MUSIC, 
    CMD_PAUSE_MUSIC, 
    CMD_EDIT_PLAYLIST, 
    CMD_ADJUST_VOLUME, 
} Commands; 


-(id) processUIEvent:(id) sender { 

    int tag = [sender tag]; 
    switch (tag) { 
     case CMD_PLAY_MUSIC: 
      // Code here... 
      break; 

     case CMD_PAUSE_MUSIC: 
      // Code here...     
      break; 

     case CMD_EDIT_PLAYLIST: 
      // Code here... 
      break; 

     default: 
      // Event not handled 
      break; 
    } 
}