当前位置:  开发笔记 > IOS > 正文

如果用户双击,UICollectionView只调用didSelectItemAtIndexPath,当用户单击时不会调用

如何解决《如果用户双击,UICollectionView只调用didSelectItemAtIndexPath,当用户单击时不会调用》经验,为你挑选了4个好方法。

我有一个大小与屏幕大小相同的UICollectionView.它显示的UICollectionViewCells与collectionView的大小相同.每个细胞都有一个UIImage,它是细胞的大小.CollectionView启用了分页,因此它实际上是用户可以滑动的全屏照片幻灯片.

问题是
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath只有当用户用两根手指敲击一个小区或长按一根手指然后释放时才会被调用.它似乎没有单击选择的默认行为.我没有对CollectionView手势识别器进行任何更改,因此无法找到解决此问题的方法.



1> 小智..:

你确定你没有意外地压倒一切- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath吗?Xcode的代码完成后,"选择"与"取消选择"在过去使我绊倒了.


我会继续接受你的回答,不是因为它解决了我的问题,而是因为它修复了一个与我非常相似的问题.

2> iDifferent..:

我只是遇到了同样的问题,事实证明有一个UITapGestureRecognizer关于UIView包含它UICollectionView并且它正在响应.

这解释了为什么didSelectItemAtIndexPath只有当用户用两根手指敲击或用一根手指长按时才起作用,因为这不会触发UITapGestureRecognizer.

所以,检查UITapGestureRecognizer你到那里的所有,不一定是在UICollectionView直接,但它可以在任何UIView包含它.


谢谢!设置`[tapGestureRecognizer setCancelsTouchesInView:NO];`为我修复它.

3> Oliver Atkin..:

如果您在单元格上有一个视图阻碍了难以处理的单元格内容视图,那么您将无法挂钩该单元格的委托回调.

您将需要在NIB或代码中禁用阻塞视图上的用户交互.

view.userInteractionEnabled = NO;



4> Blaszard..:

只需添加已经解决的问题,可能无法使用点击手势,因为这确实会让我感到痛苦.

如果你falseUICollectionViewDelegate's 内返回collectionView:shouldHighlightItemAtIndexPath:,则点击手势将不起作用,并且collectionView:didSelectItemAtIndexPath:不会被调用.此委托方法的默认返回值是true,如果您没有故意实现它,则不会出现问题.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有