在 UIGestureRecognizerDelegate 代理中支持同时多手势即可
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if(gestureRecognizer == self.xxxGesture){
return YES;
}
return NO;
}
比如向下滑动实现
- (void)handlePanDown:(UIPanGestureRecognizer *)panGesture {
CGPoint velocity = [panGesture velocityInView:self.view];
if (velocity.y > 300) { //判断速度
//判断响应区域
CGPoint swipPoint = [panGesture locationInView:self.view];
CGRect swipReactRect = CGRectMake(CGRectGetMinX(self.view.frame), CGRectGetMinY(self.view.frame), CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame) * 0.3);
BOOL canSwipBehavior = CGRectContainsPoint(swipReactRect, swipPoint);
if (canSwipBehavior && panGesture.state != UIGestureRecognizerStateCancelled) {
[self doSomething];
//即时取消息手势
panGesture.state = UIGestureRecognizerStateCancelled;
}
}
}