首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollectionView上不接收手势的手势识别器

UICollectionView上不接收手势的手势识别器
EN

Stack Overflow用户
提问于 2016-03-11 23:00:16
回答 1查看 830关注 0票数 1

我有一个垂直滚动集合视图的ViewController,它占据了整个视图。我希望能够在整个集合视图(不仅仅是在单元格上)上获得滑动和pan手势,但我无法获得任何手势。我尝试过将手势识别器添加到视图和集合视图中,但两者似乎都不起作用。

将手势识别器添加到视图中

代码语言:javascript
复制
self.panEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
self.panEdgeGesture.delegate = self;
[self.collectionView addGestureRecognizer:self.panEdgeGesture];
[self.panEdgeGesture setEdges:UIRectEdgeRight];

然后,我添加了以下功能:

代码语言:javascript
复制
- (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");
}

集合视图单元格可以阻止手势事件的触发吗?他们自己也没有手势。

EN

回答 1

Stack Overflow用户

发布于 2016-03-11 23:12:16

UIScreenEdgePanGestureRecognizer类引用

在创建屏幕边缘pan手势识别器后,在将手势识别器附加到视图之前,为边缘属性指定适当的值。您可以使用此属性指定手势可从哪些边缘开始。此手势识别器忽略第一次触摸以外的任何触摸。

因此,将代码更改为:

代码语言:javascript
复制
self.panEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc];
[self.panEdgeGesture setEdges:UIRectEdgeRight];
initWithTarget:self action:@selector(handlePan:)];
self.panEdgeGesture.delegate = self;
[self.collectionView addGestureRecognizer:self.panEdgeGesture];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35951432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档