我有一个垂直滚动集合视图的ViewController,它占据了整个视图。我希望能够在整个集合视图(不仅仅是在单元格上)上获得滑动和pan手势,但我无法获得任何手势。我尝试过将手势识别器添加到视图和集合视图中,但两者似乎都不起作用。
将手势识别器添加到视图中
self.panEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
self.panEdgeGesture.delegate = self;
[self.collectionView addGestureRecognizer:self.panEdgeGesture];
[self.panEdgeGesture setEdges:UIRectEdgeRight];然后,我添加了以下功能:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldReceiveTouch:(UITouch *)touch{
return YES;
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
- (void)handlePan:(UISwipeGestureRecognizer *)sender
{
DebugLog(@"Received pan gesture");
}集合视图单元格可以阻止手势事件的触发吗?他们自己也没有手势。
发布于 2016-03-11 23:12:16
每UIScreenEdgePanGestureRecognizer类引用
在创建屏幕边缘pan手势识别器后,在将手势识别器附加到视图之前,为边缘属性指定适当的值。您可以使用此属性指定手势可从哪些边缘开始。此手势识别器忽略第一次触摸以外的任何触摸。
因此,将代码更改为:
self.panEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc];
[self.panEdgeGesture setEdges:UIRectEdgeRight];
initWithTarget:self action:@selector(handlePan:)];
self.panEdgeGesture.delegate = self;
[self.collectionView addGestureRecognizer:self.panEdgeGesture];https://stackoverflow.com/questions/35951432
复制相似问题