我添加了一个UILongPressGestureRecognizer
到我的UICollectionView
那个是在一个子类中的UIScrollView
. (UIScrollView
分页,所以有 3 个水平堆叠UIViewController
的 s)。
我的代码添加UILongPressGestureRecognizer
:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
longPress.delegate = self;
longPress.minimumPressDuration = 0.5;
longPress.delaysTouchesBegan = YES;
[self.collectionView addGestureRecognizer:longPress];
NSLog
在我的方法handleLongPress:
中。目前我按住 a UICollectionViewCell
,它会突出显示,但长按未激活。我相信我的UIScrollView
子类正在消耗长按而不是传递给UICollectionView
. 当我抬起手指时,该didSelectItemAtIndexPath:
方法被调用。
在我的UIScrollView
子类中,我唯一的自定义如下:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(nonnull UIGestureRecognizer *)otherGestureRecognizer {
// This line enables the swipe to delete in the Messaging VC.
return ([otherGestureRecognizer.view.superview isKindOfClass:[UITableView class]]);
}
这样做是为了在 my 中启用单元格滑动UITableView
,这是 my 的页面之一UIScrollView
。刷卡没问题,我在这里尝试了许多类似的检查,UICollectionView
但UICollectionViewCell
还没有长按注册。任何建议表示赞赏。
编辑:我在另一个上添加了长按UICollectionView
,它可以正常工作,但单元格从不显示突出显示/选择状态。我想这就是为什么我不能让这个长按手势触发的线索。