모든 검색을 시도했지만 한 주 동안 비슷한 내용을 찾지 못했습니다. 테이블 뷰를 표시하는 응용 프로그램을 만들고 있습니다. 셀 (사용자 정의 클래스 및 Interface Builder로 작성)은 셀 클래스의 pu 인 UIPanGestureRecognizer로 끌 수 있습니다. 나는 응용 프로그램 충돌 오류가있는 셀을 누르면 손가락 지킬 때 모든 것을 제외하고 잘 작동 :uilongpressgesturerecognizer가 구현되지 않은 경우에도 충돌이 발생합니다.
-[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를 가로 챌려고했는데 (모든 셀을 할당하기 전에 셀 클래스의 tableview 클래스에서) 오류가 여전히 동일합니다. (제목에 나와있는 많은 스레드를보고 신뢰했습니다. 구문이 옳았습니다. 당신이 다른 문서를 원하는 문의 주시기합니다.
(이것은 내 첫 번째 게시물 내가 제시해야 정확히 모르는 여기).
당신의 소중한 도움을 주셔서 감사합니다. 좋아문제는 여전히 미안합니다. (필자는 어떻게 든 중단 점을 설정하고 스택 추적을 인쇄 할 수있었습니다. 여기에 있습니다 :
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
코드의 응용 프로그램 블록 : 나는 UILongPressGestureRecognizer을 차단함으로써 해결
-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
CGPoint translation = [gestureRecognizer translationInView:[self superview]];
편집, 그것은 안전한 방법입니다? 당신에
-(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;}
이'xib'의 개체 및 관련 코드 –
셀 객체의 이미지를보기 다음과 같습니다. http : // postimg.org/image/jnird1ifh/코드 문제는 내가 UILongpressGestureRecognizer에 대해 아무 것도 코딩하지 않았다는 것을 볼 수있다. – dado728
당신의 문제는 기본적으로 UITableView에 이미 통합되어있는 사용자 정의 제스처 인식기를 사용하고있다. http : // developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html ("테이블 행 재정렬"섹션을 참조하십시오. –