我的UIViewController中只有一个UICollectionView。
我正在使用SWRevealViewController打开左侧/右侧菜单。我可以将其panGestureRecognizer设置为提供全屏平移。
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
以下方法将提供适合的panGestureRecognizer 可以添加到任何视图中以执行通常的拖动和滑动 手势以揭示后方的看法。通常将其添加到顶部 前端控制器的栏,但可以将其添加到 frontViewController视图或向显示控制器视图提供 全屏平移。默认情况下,添加了panGestureRecognizer 到包含前控制器视图的视图。保持默认 行为,您仍然需要调用此方法,只是不要将其添加到 您的任何意见。默认设置允许您禁用用户 控制器视图上的交互,而不会影响 识别器。
我的问题是,在UICollectionView的特定单元格上,边缘没有任何间距。 cellWidth = collectionView.bounds.size.width
AND 此单元格包含一个具有水平滚动的UICollectionView。
与其打开我的左/右菜单,它只是水平滚动我的UICollectionView。
我想处理这种情况:
1::如果panGesture位于UICollectionViewCell中,该UICollectionViewCell包含具有水平滚动的UICollectionView。
2 :检测手势在水平轴上的位置,如果它位于屏幕边缘,请不要触发UICollectionView的水平滚动,而要触发panGesture来打开菜单
阅读了大量文章和官方文档后,我发现了这个UIScreenEdgePanGestureRecognizer。
但是这个逻辑也应该通过重写方法shouldReceiveTouch来完成,对吗?
关于我应该如何实现的任何提示?
编辑:
在阅读评论中建议的问题后,这是我尝试过的方法,但是不起作用。
let edgePanGesture = UIScreenEdgePanGestureRecognizer()
collectionView.panGestureRecognizer.require(toFail: edgePanGesture)
我在包含水平collectionView的单元格中进行了设置,但无法正常工作。
我可能会缺少一些帮助吗?