2013-04-10 36 views
0

我使用libpd创建了一个音乐应用程序,它有两种控制波形音量和音调的方式 - 两个独立的UISliders和一个使用UIPanGestureRecognizer的XY平板。将UIPanGestureRecognizer链接到UISlider?

我想要做的是让滑块反映出XY垫的动作,所以想知道这是怎么可能的? (即,Y轴已经在控制音量,但看到滑块也对其作出反应)

这就是我用单独的控件所处的位置。

// Volume slider 
-(IBAction)sineVol:(id)sender 
{ 
    UISlider *vslider = (UISlider *)sender; 
    [PdBase sendFloat:vslider.value toReceiver:@"sine_vol"]; 
} 

// Pitch slider  
-(IBAction)sinePitch:(id)sender 
{ 
    UISlider *pslider = (UISlider *)sender; 
    [PdBase sendFloat:pslider.value toReceiver:@"sine_pitch"]; 
} 

// XY Pad 
-(IBAction)sineXYPad:(UIPanGestureRecognizer *)trigger 
{ 
    float sinepadHeight = sinexyview.bounds.size.height; 
    float sinepadWidth = sinexyview.bounds.size.width; 
    CGPoint location = [trigger locationInView:sinexyview]; 

    if ((location.y >= 0) && (location.y < sinepadHeight) && (location.x >= 0) && (location.x < sinepadWidth)) 
    { 
    float sineVolXY = ((location.y)/250); 
    [PdBase sendFloat:sineVolXY toReceiver:@"sine_vol"]; 
} 

    if ((location.y >= 0) && (location.y < sinepadHeight) && (location.x >= 0) && (location.x < sinepadWidth)) 
    { 
    float sinePitchXY = ((location.x)/5); 
    [PdBase sendFloat:sinePitchXY toReceiver:@"sine_pitch"]; 
    } 
} 

回答

0

修正了这个现在 - 增加了滑块的插座,然后为每个功能添加下面两行。
volumeSlider.value = sineVolXY;
pitchSlider.value = sinePitchXY;