iOS 手势冲突(JXCategoryView 滚动手势与侧滑)
此处我使用的是 FDFullscreenPopGesture
解决后的效果图
JXCategoryListContainerViewDelegate 提供了一个可选的协议方法:
/**
返回自定义UIScrollView或UICollectionView的Class
某些特殊情况需要自己处理UIScrollView内部逻辑。比如项目用了FDFullscreenPopGesture,需要处理手势相关代理。
@param listContainerView JXCategoryListContainerView
@return 自定义UIScrollView实例
*/
- (Class)scrollViewClassInlistContainerView:(JXCategoryListContainerView *)listContainerView;
看到这个我就知道怎么弄了,咱们可以自定义一个自定义 UICollectionView 在里面实现手势的控制,让它兼容多种手势共存
1、新建 HJCollectionView 继承自 UICollectionView, 添加UIGestureRecognizerDelegate 代理
HJCollectionView.h
@interface HJCollectionView : UICollectionView<UIGestureRecognizerDelegate>
@end
2 .HJCollectionView.m
#import "HJCollectionView.h"
@implementation HJCollectionView
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (self.contentOffset.x <= 0) {
return YES;
}
return NO;
}
@end
3. 在使用 JXCategoryView 的控制器中实现 JXCategoryListContainerViewDelegate
- (Class)scrollViewClassInlistContainerView:(JXCategoryListContainerView *)listContainerView {
return [HJCollectionView class];
}