2011-10-25 2 views
1

이제는 탭이 발생할 때주의를 기울여 다른보기를 표시하기 위해 얼마 전에 UITapGestureRecognizer을 사용했습니다. 나는 이것을 다음과 같이 초기화하고있다.UITapGestureRecognizer의 대상이 iOS 5에서 더 이상 호출되지 않습니다.

_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)]; 

iOS 4.3에서는 완벽하게 작동했다. iOS 5에서는 -showModalDetailView:이 더 이상 호출되지 않습니다.

누구도이 문제가 있는지 궁금합니다.

나는이 같은 인식을 구성하고있어

업데이트 : 2

확인

_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)]; 
_tapGesture.numberOfTapsRequired = 1; 
_tapGesture.numberOfTouchesRequired = 1; 
_tapGesture.delegate = self; 
[self addGestureRecognizer:_tapGesture]; 

업데이트, 지금은 이상한 가져옵니다. 주석을 달아 대리자 설정을 사용하지 않도록 설정하면 코드가 다시 작동하기 시작합니다. 그러나 대리자 메서드는 여전히 호출되고 있습니다. 하지만 항상 그런 것은 아닙니다.

셀의 왼쪽 정렬 제목과 오른쪽 정렬 세부 텍스트가 있습니다. 세부 텍스트를 누르면 예상대로 작동합니다. 대리자 메서드가 호출되지 않고 popover가 나타납니다. 다른 셀에 도달하면 위임 메서드 (이 경우 -gestureRecognizer:shouldReceiveTouch:)가 호출되고 popover가 나타납니다.

나는 여기서 무슨 일이 일어나고 있는지 알지 못합니다.

+0

어디에서 인식기를 연결합니까? – Dunkelstern

+0

커스텀'UITableViewCell' 서브 클래스의'- (id) initWithStyle : reuseIdentifier :'에 있습니다. – flohei

답변

3

이제는 세 가지 대리자 메서드를 모두 구현 했으므로 (선택 사항 임에도 불구하고) 작동합니다. 그냥 기본값을 반환합니다. 고마워, Dunkelstern과 토마스.

+0

나는 비슷한 문제에 직면했다. 대리자 설정 줄을 제거하면 고정되어 있기 때문에 콜백이 포함 된 사용자 지정 프로토콜이 없기 때문에 인식 자의 대리자를 설정하는 것이 어리석은 실수라는 것을 깨달았습니다. 타겟과 셀렉터를 추가하는 것만으로는 충분하지 않습니다. 어느 것이 당신에게 대답 하느냐고 묻습니다. 답안에서 말하는 세 가지 대표 방법은 무엇입니까? – Sid

+0

Sid, 구현 한 메소드는'UIGestureRecognizerDelegate'에 정의 된 메소드입니다. 뷰가 꼭지를 받아야 하는지를 결정하기 위해서는'-gestureRecognizer : shouldReceiveTouch :'가 필요했다. 나는 꼭지점을 두 드릴 때 이벤트를 시작해서는 안되는 또 다른보기를 사용하고있었습니다. – flohei

+0

오, 알았어, 고마워! 나는 UITapGestureRecognizerDelegate를 찾고 있었다 :) – Sid

0

numberOfTouchesRequired 및 numberOfTapsRequired를 명시 적으로 1로 설정해보십시오. 물론 View 인스턴스에서 addGestureRecognizer를 호출해야합니다.

+0

나는 이미 그렇게하고있다. 내 업데이트를 참조하십시오. – flohei

관련 문제