Pan手势干扰了UISlider

use*_*946 13 iphone xcode ipad ios

我正在尝试创建一个滑动菜单(有点像在Facebook/Twitter应用程序中),我的版本成功地使用平移手势来实现此效果.该类称为"SlideMenu".

我在我的ViewController中实例化了一个SlideMenu,然后在其上添加了一堆UI元素作为子视图,例如UISliders,UIButtons等.

问题是,平移手势似乎会干扰UISlider,因为它会滑动,但在很短的距离后停止.我在答案上找到了一段代码(手势问题:UISwipeGestureRecognizer + UISlider)但是我不确定如何实现它或者它是否适用于我的设计.

代码是这样的:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([touch.view isKindOfClass:[UISlider class]]) {
        // prevent recognizing touches on the slider
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我尝试将它添加到我的SliderMenu类和我的ViewController,但没有骰子.这是怎么回事?我必须设置什么代表(如果有的话)?谢谢

del*_*lds 14

基本上,在处理手势识别器的任何控制器或视图中.当您创建手势识别器时,您可以将其委托设置为某个对象(可能是您的视图控制器)并让此对象实现UIGestureRecognizerDelegate.其中一个委托回调是gestureRecognizer:shouldReceiveTouch,因此您只需将上面放置的代码复制到对象(视图控制器)的实现中.