2016-07-13 9 views
0

UIScrollViewのサブクラス内にUICollectionViewUILongPressGestureRecognizerを追加しました。 (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]]); 
} 

。スワイピングは問題ありません。UICollectionViewUICollectionViewCellの類似のチェックを数回試しましたが、まだ長いプレスをまだ登録していません。何かアドバイスをいただきました。

編集:私は別のUICollectionView上で長押しを追加して、それが機能しているが、セルが強調表示/選択された状態を示したことがありません。私はそれがなぜこの長いプレスジェスチャーを発射できないのかという手がかりだと思います。

答えて

0

私の問題は、私は-init方法でジェスチャー認識を追加されたということでした。それはうまくいかなかった。 -viewDidLoadにコードを移動するだけで問題は解決しました。

関連する問題