gestureRecognizerShouldBegin
あなたが作成した以外のジェスチャーを求められているように見えますUIPanGestureRecognizer
。gestureRecognizerShouldBegin
明らかに、セルサブクラスを変更して、パンジェスチャかどうかをテストするだけで、症状を解決できます。
-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]])
{
CGPoint translation = [gestureRecognizer translationInView:gestureRecognizer.view];
if (fabsf(translation.x) > fabsf(translation.y)) {
return YES;
}
return NO;
}
return NO;
}
ただし、上記の修正は症状に対処するだけです。本当の問題は、あなたのUIGestureRecognizerDelegate
メソッドが、gestureRecognizerShouldBegin
あなた以外のジェスチャに対してどのように呼び出されているかということUIPanGestureRecognizer
です。他のジェスチャが機能している可能性があります(たとえば、canEditRowAtIndexPath
を返すを実装した場合YES
、スワイプジェスチャを有効にします)が、カスタムセルがそのスワイプジェスチャのデリゲートとしてどのように認識されるかわかりません。
問題を再現できる唯一の方法は、セル(またはテーブルまたはビュー)にスワイプジェスチャを手動で追加することです。スワイプジェスチャを使用しなかったとおっしゃっていますが、Interface Builderなどで誤って追加された可能性がありますか?あなたが説明した症状を再現するのに苦労しているのでわかりません。最悪の事態が発生した場合は、プロジェクトを圧縮して私たちと共有することができます。簡単に見ていきたいと思います。