2013-08-26 3 views
0

iPad 앱에서 작업하고 있습니다. 사용자가 손가락으로 그릴 수있는 뷰가 있습니다. 이보기에는 하위보기가 있으며 계산기는 단추가 있습니다.버튼 동작시 제스처 인식기 취소

사용자가 버튼을 터치 할 때 슈퍼 뷰 (사용자가 그릴 수 있음)는이 터치를 고려하지 않기를 바랍니다. (사용자가 계산기를 만졌을 때 그리지 않으므로)

계산기보기 코드와 내 수퍼 뷰 코드를 변경하지 않는 것이 좋습니다. 다른 클래스의 속성을 통해서만 액세스 할 수 있습니다.

문제를 해결할 방법이 있습니까? 나는 exclusiveTouch를 시도했지만 작동하지 않습니다.

+0

당신이 코드를 제공 할 수 있습니다 "SimpleGestureRecognizers"사과에서인가? –

+0

아니요, 코드가 너무 많습니다 (내 코드가 아닙니다). – Arnaud

답변

2

버튼 동작하고 간단하게 설정할 수 있습니다 도면 제스처에 액세스 할 수있는 경우 :

gesture.enabled = NO; 

현재 제스처 처리를 취소하려면 및/또는 그것을 시작 방지합니다. 제스처를 다시 활성화하려면 어떤 유형인지 및 사용 방법에 따라 다르지만 즉시 (다음 줄에서) 수행하면됩니다.

+0

불행하게도 버튼 동작은 다른 많은 클래스에서 사용되는 Calculator 클래스에 있습니다. 나는 그것을 수정하지 않는 것을 선호한다. – Arnaud

+0

뭔가를 변경해야합니다. 제스처/터치 핸들러에 액세스 할 수 있습니까? – Wain

1

이것을 시도하지만 헤더 파일에 UIGestureRecognizerDelegate을 포함하십시오.

이 예 -

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    // Disallow recognition of tap gestures in the segmented control. 
    if ((touch.view == YourButton)) 
    { 
     //change it to your condition 
     return NO; 
    } 

    return YES; 
} 
+0

이 방법을 시도했지만 메서드가 호출되지 않습니다. 정말 수업 시간에 계산기 수업에 넣지 않으면 안되나요? ; YES (UIGestureRecognizer *) otherGestureRecognizer { 반환 : (UIGestureRecognizer *) gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer : (BOOL) gestureRecognizer - – Arnaud

+0

는이'UIGestureRecognizerDelegate' 또한'추가 시도를 포함나요 } ' –

+0

예, 가능하지만 작동하지 않습니다. 그러나 나는 (내 질문의 범위를 벗어난) 다른 방식으로 나의 문제를 해결했다. 도와 줘서 고마워. – Arnaud