UIGestureRecongnizer 手势拦截 对于特殊需求很有用

手势其实也有代理方法的,通过代理方法可以做到更多关于手势方面的功能

比如在下面的方法中,如果是UIButton的点击就阻止手势的点击事件。

// called before touchesBegan:withEvent: is called on the gesture recognizer for a new touch. return NO to prevent the gesture recognizer from seeing this touch

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

{

   if([touch.view iskindOfclass [UIButton class]]

{

   return No;

}

 return YES;

}

 而且还可以做到使一个响应者的部分区域响应手势。

比如点击手势加到了一个图片上,那么同样在  

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

方法里面只要判断位置就行了,如图

 这个可以做到,被添加手势的那个控件只响应左侧的点击,而忽略右侧。

那么问题来了,如何让一个按钮 或者被加了点击事件的imageview 左侧响应一个点击方法,右侧响应另一个点击方法(也就是说让一个控件的不同部位响应不同的方法),欢迎评论留言。

 

posted on 2016-11-06 21:46  🌞Bob  阅读(945)  评论(0编辑  收藏  举报

导航