0

여러 제스처 응답자에 응답하도록 설정하려는 이미지가 있습니다. 예를 들어, 그림의 한 부분을 만졌을 때 하나의 선택기를 호출하고 그림의 다른 부분을 다른 선택기로 호출 할 수 있습니다.단일보기에 대한 여러 제스처 응답자

나는 UIGestureRecognizerUITapGestureRecognizer 클래스를 보았지만 이미지 영역을 지정하는 방법을 찾을 수 없었다. iOS에서 가능한가요? 그렇다면 어떤 수업을 사용해야합니까?

답변

3

가장 쉬운 해결책은 이미지 위에 보이지 않는 뷰를 놓고 제스처 인식기를 올려 놓는 것입니다.

가능하지 않은 경우 제스처 인식기의 탭 처리기에서 locationInView를보고 사용자가 두드린 위치를 기준으로 수행 할 작업을 파악해야합니다.

+0

, 감사합니다! –

2

locationInView: 속성을 사용하면 탭이 발생한 위치를 확인한 다음 조건부로 메소드를 호출 할 수 있습니다. 귀하의 히트 영역에 해당하는 일부 CGRect을 설정하여이를 수행 할 수 있습니다. 그런 다음 CGRectContainsPoint() 함수를 사용하여 탭이 조회 영역 중 하나에 도착했는지 확인합니다.

귀하의 탭 제스처 인식 작용은 다음과 같이 보일 수 있습니다 : 나를 위해 일한

- (void)tapGestureRecognized:(UIGestureRecognizer *)recognizer 
{ 
    // Specify some CGRects that will be hit areas 
    CGRect firstHitArea = CGRectMake(10.0f, 10.0f, 44.0f, 44.0f); 
    CGRect secondHitArea = CGRectMake(64.0f, 10.0f, 44.0f, 44.0f) 

    // Get the location of the touch in the view's coordinate space 
    CGPoint touchLocation = [recognizer locationInView:recognizer.view]; 

    if (CGRectContainsPoint(firstHitArea, touchLocation)) 
    { 
     [self firstMethod]; 
    } 
    else if (CGRectContainsPoint(secondHitArea, touchLocation)) 
    { 
     [self secondMethod]; 
    } 
} 
관련 문제