多个DCSliders发送不同的控制值(Xcode)

这个问题可能是非常具体的,但我是新来的,真的需要一些帮助。

我正在构buildiPhone合成应用程序。 我正在使用DCSliders一个DCKnobs(他们看起来比标准的UISliders更好)。

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

我也在使用libpd(一个纯数据库),所以audioDSP由一个embedded式纯数据补丁处理。

https://gitorious.org/pdlib

我的界面中有多个DCSliders和DCKnobs。 我可以通过将一个类作为DCSlider的委托,将控制值从滑块/旋钮发送到Pure Data …

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

然后我实现一个方法来发送控制值到接收器在纯数据…

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

这一切工作正常。

问题是,所有的滑块发送相同的控制值。

我如何让每个DCSliders在纯数据中向独立的接收器发送独立的控制值?

您需要为您的滑块指定一个标签 。 然后在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; } }