可能な限りあらゆる検索を試みましたが、1週間で同様のものは見つかりませんでした. テーブル ビューを表示するアプリケーションを作成しています。セル (カスタム クラスおよび Interface Builder で作成) は、セルのクラスで pu である UIPanGestureRecognizer を使用してドラッグできます。セルを指で押し続けると、アプリがエラーでクラッシュすることを除いて、すべて正常に動作します。
-[UILongPressGestureRecognizer translationInView:]: unrecognized selector sent to instance 0x94670a0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILongPressGestureRecognizer translationInView:]: unrecognized selector sent to instance 0x94670a0'
私はそれが何を意味するかを知っています (通常、インスタンスに送信された間違ったパラメーター) が、コードに UILongPressGestureRecognizer の痕跡がないため、これがどのように可能であるかは本当にわかりません。LongPressGestureREcognizer EVERYWHERE (セル クラス内、テーブルビューのクラス内、すべてのセルの割り当て前) を傍受しようとしましたが、エラーは同じです (ここで件名の多くのスレッドを見て、私を信頼してください。構文は正しかった.
他のドキュメントが必要な場合は、お気軽にお問い合わせください (これが初めての投稿で、何を表示する必要があるのか正確にはわかりません)。
貴重なご協力ありがとうございます。
OK、問題はまだあります。お手数をおかけして申し訳ありません :( どうにかしてブレークポイントを設定し、スタック トレースを出力することができました。これは次のとおりです。
0 uBellow 0x0000ac57 -[OpinionCell gestureRecognizerShouldBegin:] + 71
1 UIKit 0x00914939 -[UIGestureRecognizer _shouldBegin] + 1334
2 UIKit 0x0091181a -[UIGestureRecognizer setState:] + 152
3 UIKit 0x00921cea -[UILongPressGestureRecognizer enoughTimeElapsed:] + 127
4 libobjc.A.dylib 0x017186b0 -[NSObject performSelector:withObject:] + 70
5 UIKit 0x00787954 -[UIDelayedAction timerFired:] + 83
6 Foundation 0x0114d2c0 __NSFireTimer + 97
7 CoreFoundation 0x01bce376 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
8 CoreFoundation 0x01bcde06 __CFRunLoopDoTimer + 534
9 CoreFoundation 0x01bb5a82 __CFRunLoopRun + 1810
10 CoreFoundation 0x01bb4f44 CFRunLoopRunSpecific + 276
11 CoreFoundation 0x01bb4e1b CFRunLoopRunInMode + 123
12 GraphicsServices 0x022337e3 GSEventRunModal + 88
13 GraphicsServices 0x02233668 GSEventRun + 104
14 UIKit 0x00648ffc UIApplicationMain + 1211
15 uBellow 0x0000287d main + 141
16 uBellow 0x000027a5 start + 53
アプリはコードでブロックします。
-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
CGPoint translation = [gestureRecognizer translationInView:[self superview]];
編集 UILongPressGestureRecognizer をインターセプトすることで解決しましたが、安全な方法ですか?
-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
if([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]){
return NO;
}else{
CGPoint translation = [gestureRecognizer translationInView:[self superview]];
// Check for horizontal gesture
if (fabsf(translation.x) > fabsf(translation.y)){
return YES;
}
}
return NO;}