解决UIScrollView和滑动返回手势的冲突
项目中浏览图片时,是以一个scrollview横向来展示多张图片,但是由于滑动返回手势和scrollview的滑动返回手势冲突了,导致在浏览图片时,页面不再能够滑动返回。所以想办法解决。
由于项目里的滑动返回,是UIPanGestureRecognizer,而且在项目中,只有滑动屏幕的左边100个像素,UIPanGestureRecognizer才会起作用。UIScrollView的滑动手势也是UIPanGestureRecognizer。那在侧边滑动时,让UIScrollView的不响应事件就OK了嘛,首先想到了继承UIScrollView 重写下面的方法,让滑动侧边时scrollView不响应事件,根据响应者链,事件最终会传递给下方的滑动手势。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if (point.x < 100) {
return nil;
} else {
return [super hitTest:point withEvent:event];
}
}
OK,搞定测试一下,貌似没什么问题,滑动侧边可以返回,滑动非侧边绝对不会返回。问题这么容易就解决了?
由于项目中需求变化了,不仅需要浏览图片时可以滑动返回,在一个页面不同tab时,也需要滑动切换,滑动返回。那还不简单,只要滑动切换的scrollView的父类改为上面的类就好了。很快就修改完成了,滑动切换没问题,滑动返回没问