1.开始进行手势识别时调用的方法,返回NO则结束识别,不再触发手势
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) {
return NO;
}
return YES;
}
有用来处理:手势如果是长按手势,则结束识别.
2.手指触摸屏幕后回调的方法,返回NO则不再进行手势识别,方法触发此方法在window对象有触摸事件发生时。调用gesture recognizer的touchesBegan:withEvent:方法之前调用,如果返回NO,则gesture recognizer不会看到此触摸事件,默认情况下为YES - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
//判断如果点击的view是UICollectionView则接收touch点击事件,就可以执行手势方法,否则不执行
if ([touch.view isKindOfClass:[UICollectionView class]]) {
return YES;
}
return NO;
}
3.是否支持多手势触发,返回YES则可以多个手势一起触发方法,返回NO则为互斥,是否允许多个手势识别器共同识别,一个控件的手势识别后是否阻断手势识别向下传播,默认返回NO,如果为YES,响应者链上层对象触发手势识别后,如果下层也添加了手势并成功识别也会继续执行,否则上层对象识别后不再继续传递 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
网友评论