gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:47:10 24 4
gpt4 key购买 nike

这个问题可能非常具体,但我是新手,确实需要一些帮助。

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

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

我还在使用 libpd(一个 Pure Data 库),因此音频 DSP 由嵌入式 Pure Data 补丁处理。

https://gitorious.org/pdlib

我的界面中有多个 DCSlider 和 DCKnob。通过使类成为 DCSlider 的委托(delegate),我能够将控制值从 slider /旋钮发送到 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"];
}

一切正常

问题是所有 slider 都发送相同的控制值。

如何让每个 DCSlider 将独立的控制值发送到 Pure Data 中的不同接收器?

最佳答案

您需要为 slider 分配一个标签。然后在 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;
}
}

关于ios - 多个DCSliders发送不同的控制值(Xcode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6869168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com