返回手势和UITableView删除的冲突
今天遇到一个手势冲突的问题在这里记录一下
由于还要适配ios6 所以就从网上找了个侧滑返回的类
但是这个类手势和UITableView的滑动删除是有冲突的 所以UITableView的手势被干掉了(原生的UINavigationcontroller不会)
解决办法就是写个scrollView的category重写
#import "UIScrollView+AllowPanGestureEventPass.h"
@implementation UIScrollView (AllowPanGestureEventPass)
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] || [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] ) {
return YES;
}
return NO;
}
@end
判断是否是pan手势如果是让其他的pan手势同时响应 这样既能响应返回的那个返回的pan手势 又能响应UITableView上的pan手势
但是这么写会影响你项目中的其他UIScrollView 而且会出现右滑撤销删除和右滑返回的一起执行
而我比较希望的是 在这个VC里面的是侧滑的区域变小一点别影响我撤销删除的操作
所以我就这么改
#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (self.viewControllers.count <= 1 || !self.canDragBack) return NO;
if ([[self.viewControllers lastObject] isKindOfClass:[CollisionGestureViewController class]]) {
CGPoint point = [gestureRecognizer locationInView:self.view];
NSLog(@"%@", NSStringFromCGPoint(point));
if (point.x < self.view.frame.size.width / 3) {
return YES;
}
else {
return NO;
}
return NO;
}
return YES;
}
这里面还有一个其他的例子介绍手势冲突的
http://blog.csdn.net/wsxzk123/article/details/44229559
在适配iOS6并使用MLNavigationController实现侧滑返回手势时,遇到了手势与UITableView滑动删除的冲突问题。原生UINavigationController不会出现此类问题。解决办法是通过自定义UIScrollView类别来调整冲突,但可能影响其他scrollView。为了不影响撤销删除操作,可以缩小侧滑返回手势的区域。参考链接提供了更多手势冲突处理信息。

857

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



