여러 제스처 응답자에 응답하도록 설정하려는 이미지가 있습니다. 예를 들어, 그림의 한 부분을 만졌을 때 하나의 선택기를 호출하고 그림의 다른 부분을 다른 선택기로 호출 할 수 있습니다.단일보기에 대한 여러 제스처 응답자
나는 UIGestureRecognizer
과 UITapGestureRecognizer
클래스를 보았지만 이미지 영역을 지정하는 방법을 찾을 수 없었다. iOS에서 가능한가요? 그렇다면 어떤 수업을 사용해야합니까?
여러 제스처 응답자에 응답하도록 설정하려는 이미지가 있습니다. 예를 들어, 그림의 한 부분을 만졌을 때 하나의 선택기를 호출하고 그림의 다른 부분을 다른 선택기로 호출 할 수 있습니다.단일보기에 대한 여러 제스처 응답자
나는 UIGestureRecognizer
과 UITapGestureRecognizer
클래스를 보았지만 이미지 영역을 지정하는 방법을 찾을 수 없었다. iOS에서 가능한가요? 그렇다면 어떤 수업을 사용해야합니까?
가장 쉬운 해결책은 이미지 위에 보이지 않는 뷰를 놓고 제스처 인식기를 올려 놓는 것입니다.
가능하지 않은 경우 제스처 인식기의 탭 처리기에서 locationInView를보고 사용자가 두드린 위치를 기준으로 수행 할 작업을 파악해야합니다.
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];
}
}
, 감사합니다! –