在 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;
}
}
}
本文介绍了如何在UIGestureRecognizerDelegate中实现多手势同时识别,特别是针对向下滑动的手势进行详细解析。通过设置代理方法允许手势同时识别,当滑动手势速度超过一定阈值并在特定区域内触发时,执行相应操作。同时,通过即时取消消息手势来优化交互体验。
6497

被折叠的 条评论
为什么被折叠?



