UIScrollView
のサブクラス内にUICollectionView
にUILongPressGestureRecognizer
を追加しました。 (UIScrollView
はページングされているので、水平方向に3つ積み重ねられます。UIViewController
)。UICcrollView内のUICollectionView:長押し
UILongPressGestureRecognizer
を追加するための私のコード:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
longPress.delegate = self;
longPress.minimumPressDuration = 0.5;
longPress.delaysTouchesBegan = YES;
[self.collectionView addGestureRecognizer:longPress];
そして、私のhandleLongPress:
方法でNSLog
。現在、私はUICollectionViewCell
を押し続けていますが、それは強調表示されていますが、長押しが有効になっていません。私はUIScrollView
サブクラスが長いプレスを消費しており、UICollectionView
に渡っていないと信じています。指を持ち上げると、didSelectItemAtIndexPath:
メソッドが呼び出されます。私UIScrollView
サブクラスで
は、私が持っている唯一のカスタマイズは以下の通りです:これは私のUIScrollView
のページの一つである私のUITableView
、中の細胞スワイプを有効にするために行われた
- (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]]);
}
。スワイピングは問題ありません。UICollectionView
とUICollectionViewCell
の類似のチェックを数回試しましたが、まだ長いプレスをまだ登録していません。何かアドバイスをいただきました。
編集:私は別のUICollectionView
上で長押しを追加して、それが機能しているが、セルが強調表示/選択された状態を示したことがありません。私はそれがなぜこの長いプレスジェスチャーを発射できないのかという手がかりだと思います。