Несколько DCSliders отправляют различные значения управления (Xcode) - PullRequest
1 голос
/ 29 июля 2011

Этот вопрос может быть очень конкретным, но я новичок во всем этом и действительно нуждаюсь в некоторой помощи.

Я создаю приложение для iPhone-синтезатора.Я использую DCSliders и DCKnobs (они выглядят лучше, чем стандартные UISliders).

https://github.com/domesticcatsoftware/DCControls#readme

Я также работаю с libpd (библиотека Pure Data), поэтому аудио DSP обрабатываетсявстроенный патч Pure Data.

https://gitorious.org/pdlib

У меня есть несколько DCSliders и DCKnobs в моем интерфейсе.Я могу отправлять управляющие значения из ползунков / регуляторов в Pure Data, сделав класс делегатом DCSlider ...

- (void)loadView {
  [super loadView];
  self.mySlider = [[[DCSlider alloc] initWithDelegate:self] autorelease];
  self.mySlider.frame = CGRectMake(10.0, 10.0, 20.0, 120.0);

  [self.view addSubview:self.mySlider];
}

Затем я реализую метод отправки управляющих значений получателю в Pure.Данные ...

- (void)controlValueDidChange:(float)value sender:(id)sender {  
    [PdBase sendFloat:value toReceiver:@"beatvol"];
}

Все это работает нормально.

Проблема в том, что все ползунки отправляют одинаковые значения управления.

Как получить каждыйиз DCSliders для отправки независимых значений управления для различных получателей в чистых данных?

1 Ответ

1 голос
/ 29 июля 2011

Вам необходимо назначить тег для ваших ползунков. Затем в controlValueDidChange: вам нужно получить этот тег и выполнить свои действия в соответствии с тегами:

- (void)loadView 
{
    [super loadView];
    mySlider = [[[DCSlider alloc] initWithDelegate:self] autorelease];
    mySlider.frame = CGRectMake(10.0, 10.0, 20.0, 120.0);
    mySlider.tag = 0;
    [self.view addSubview: mySlider];
}
- (void)controlValueDidChange:(float)value sender:(id)sender 
{  
    DCSlider * slider = (DCSlider *)sender;

    switch (slider.tag) 
    {
        case 0: 
        { 
            [PdBase sendFloat:value toReceiver:@"beatvol"];
        }
            break;
        case 1: 
        { 
            /*  do something for the 2nd slider  */;
        }
            break;
    }        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...