我的手势识别器有问题.我的目标是在我的表视图中使用滑动来删除.但我认为其他手势相互冲突.我正在使用这个libray
romaonthego/REFrostedViewController
这个库为我的汉堡菜单,这个库有一个pangesture功能.我认为冲突是在手势中.因为当我在另一个项目中运行我的tableview代码时,它正在工作.请帮助,提前谢谢你.
这个库为我的汉堡菜单,这个库有一个pangesture功能.我认为冲突是在手势中.因为当我在另一个项目中运行我的tableview代码时,它正在工作.请帮助,提前谢谢你.
解决方法
编辑:已针对iOS 11进行了更新
其他答案很有帮助,但在我的情况下,最好的解决方案是在shouldRequireFailureOfOtherGesture中执行逻辑,如下所示:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { if (gestureRecognizer == self.pan) { return YES; } return NO; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { if (gestureRecognizer == self.pan) { // iOS 10 if ([NSStringFromClass([otherGestureRecognizer.view class]) isEqualToString:@"UITableViewWrapperView"]) { return YES; } // iOS 11 else if ([otherGestureRecognizer isMemberOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer.view isKindOfClass:[UITableView class]]) { return YES; } } return NO; }
在我的情况下,这有一个更好的行为.我在平移手势上也使用了delayedTouchesBegan = YES.可能有用!