2013-04-10 43 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;