手势其实也有代理方法的,通过代理方法可以做到更多关于手势方面的功能
比如在下面的方法中,如果是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 左侧响应一个点击方法,右侧响应另一个点击方法(也就是说让一个控件的不同部位响应不同的方法),欢迎评论留言。