UICollectionView 内のセルのダブルタップに応答し、ダブルタップ アクションでセルの選択をキャンセルしたいと考えています。
これは私が試したことです:
UITapGestureRecognizer *tapRecogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
tapRecogniser.numberOfTapsRequired = 2;
for (UITapGestureRecognizer *recogniser in [self.collectionView gestureRecognizers]) {
[recogniser requireGestureRecognizerToFail:tapRecogniser];
}
[self.collectionView addGestureRecognizer:tapRecogniser];
つまり、ダブルタップ ジェスチャ レコグナイザーが成功した場合に、デフォルトのジェスチャ レコグナイザーを失敗させようとしています。
collectionView:didSelectItemAtIndexPath:
私のコレクションビューデリゲートはダブルタップ後にまだ呼び出されているため、これは機能していないようです
Apple の UICollectionViewController ドキュメントに関する注意
Apple のドキュメントはこの点で誤解を招き、デフォルトのジェスチャ レコグナイザーは UITapGestureRecognizer サブクラスのインスタンスであるため、 で簡単に選択できると主張しています[recogniser isKindOfClass:[UITapGestureRecognizer class]]
。残念ながら、これはエラーです。