在开发中有可以会遇见这样的问题,添加手势的同时,会和点击事件冲突。这是由于手势是大哥,点击事件是小弟,可以理解为手势优于点击事件。那么怎么解决呢?我们可以实现手势delegate方法,拦截事件就可以了,具体方法如下:
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch{
// touch.view 就是手势的view,判断它是否为self.view的子类或本身 手势冲突时候,拦截手势
if([touch.viewisKindOfClass:[self.viewclass]]) {
returnNO;
}
return YES;
}
那如果在一个对象上加多个手势呢? 由于只会执行最后一个手势,所以我们需要实现手势的代理方法:
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer
{
returnYES;
}