제스처 인식기의 locationInView:
을 검사하여 동작을 변경하십시오.
이미지를 하나의 단위로 처리하는 경우 제스처 인식기 콜백에이 이미지를 구현하여 어떤 "리프"(있는 경우)를 탭했는지 결정하십시오.
이미지를 여러 이미지로 처리하는 경우 콜백에 이미지를 구현할 수도 있고, 예를 들어 대리자의 gestureRecognizerShouldBegin:
에 구현하여 리프 외부의 터치 이벤트가 표시되지 않도록 할 수도 있습니다.
편집 : 지점에 잎이 있는지 여부를 알아내는 데 도움이 필요하다는 것을 몰랐습니다. @ PhilipsMills는이 시점에서 정확합니다. 이미지를 어떻게 그려야하는지 알아야합니다.
추종 : 이것은 내 전문 분야 밖에 있습니다.
가장 쉬운 접근법 (히트 테스트의 관점에서)은 @PhillipMills가 제안한 Quartz 도면과 CGPathContainsPoint()
을 사용하는 것입니다. PNG로 렌더링해야하는 상세한 그래픽이 있다면 히트 테스트를 위해 (사실상) 오버레이 된 간단한 경로를 만들 수 있습니다.
다른 옵션 인 AFAIK는 수학적으로 히트 테스트를 수행하지만 실제로는 경로가없는 CGPathContainsPoint()
을 다시 구현하거나 터치 포인트에서 픽셀의 색상을 볼 수있는 다양한 트릭을 사용하여 적중 테스트를 수행합니다 . 당신이이 길로 간다면 인터넷 검색은 유용한 결과를 보여줄 것입니다. 그러나 그려진 것만 큼 단순한 도형에 대해서는 솔직히 코드로 다시 작성하려면 UIBezierPath
코드를 사용하십시오. 당신이 구성 요소로 분리 모양을 깰 수 있다면
어떻게 이미지가 생성된다? 경로에서 그리는 경우 경로를 저장할 수 있으며 경로에 접촉 지점이 있는지 확인할 수 있습니다. –
@PhillipMills .png 파일이므로 응용 프로그램에서 그려지지 않습니다. – ubiAle