2012-05-23 4 views
1

2 객체가 만져 졌는지 여부를 알 수있는 방법을 말해 줄 수 있다면 정말 좋을 것 같습니다 (이미지 또는 버튼) 나는 그들을 만져서 드래그 할 수있는 방법을 알고 있지만 어떻게 만졌고 할 수 있는지 알려주지는 않습니다. 그들이 만질 때 뭔가!다른 객체를 만지는 객체

감사합니다.

+0

각보기의 좌표/프레임을 확인하고 겹치거나 같은지 확인하십시오 – Otium

답변

2

개체를 회전시키지 않으면 CoreGraphics 기능을 사용할 수 있습니다.

BOOL objectsTouch = CGRectIntersectsRect(object1.frame, object2.frame); 

물론 두 개체가 동일한 수퍼 뷰에 있어야합니다. 그렇지 않으면 NSView의 기능을 사용하여 프레임을 변형해야합니다.

+0

+1, 아마도 이것이 가장 효율적인 방법 일 것입니다. 말할 필요도 없겠지만 프레임 직사각형을 비교하고 있기 때문에 이미지가 원형 또는 무언가라면 예기치 않은 결과를 얻을 수 있습니다. – gregheo

0

일반적인 접근법은 각 객체를 포함하는 최소 원을 계산 한 다음 원 중심 (피타고라스 정리) 사이의 거리를 계산하고 R (객체 1 원) + R (객체 2 원)보다 작은 지 확인합니다. 적은 경우 비트 맵핑이나 다른 스키마로 아래로 더러워 져야합니다. 그러나 더 큰 경우 객체가 만지지 않는다고 추측 할 수 있습니다.

관련 문제