多个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; } }