我有一台和屏幕差不多大的UICollectionView。它显示的UICollectionViewCells与collectionView的大小相同。每个单元格都有一个UIImage,它是单元格的大小。CollectionView启用了分页功能,因此它本质上是一个全屏照片幻灯片,用户可以在其中滑动。
问题是
只有当用户用两个手指在单元格上轻敲或用一根手指长按然后松开时,才会调用-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath。它似乎没有单击选择的默认行为。我没有对CollectionView手势识别器做任何更改,所以我很难找到解决这个问题的方法。
发布于 2013-05-16 00:20:30
你确定你不是不小心覆盖了- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath吗?“选择”和“取消选择”在过去的Xcode的代码补全中让我吃了一惊。
发布于 2013-08-01 06:24:11
我也遇到了同样的问题,结果发现UIView上有一个包含UICollectionView的UITapGestureRecognizer,它正在响应。
这就解释了为什么只有当用户用两根手指轻敲或用一根手指长按时,didSelectItemAtIndexPath才能工作,因为这不会触发UITapGestureRecognizer。
所以,检查你在那里得到的所有UITapGestureRecognizer,不一定直接在UICollectionView上,但它可以在任何包含它的UIView上。
发布于 2015-04-30 00:00:57
如果你在单元格上有一个视图,它阻碍了单元格的内容视图,那么你将不能挂钩到该单元格的委托回调中。
您需要在NIB或代码中禁用遮挡视图上的用户交互。
view.userInteractionEnabled = NO;
https://stackoverflow.com/questions/16444688
复制相似问题