Значение отправителя UISlider изменено - PullRequest
3 голосов
/ 16 августа 2010

Я использую несколько UISliders на форме, и я хочу, чтобы только один метод отслеживал изменения ползунка.

Теперь у меня есть метод:

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

Но потому что яиспользовать несколько ползунков, я хочу использовать оператор switch для запуска определенного ползунка, поэтому, например, если у меня есть 2 ползунка, и они оба используют вышеупомянутый метод ValueChanged, я хочу что-то вроде:

    - (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]];  
    }

Кто может мне помочь?

Заранее спасибо!

Ответы [ 2 ]

10 голосов
/ 16 августа 2010

Вам просто нужно сравнить параметр sender со своими ползунками, чтобы выяснить, какой из них переместился:

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

Затем подключите все ползунки к этому действию в IB или через -setTarget.

0 голосов
/ 03 июня 2011

Присвойте значение свойству tag любого компонента пользовательского интерфейса в IB и оцените его, используя регистр переключения, например:

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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...