2010-12-13 4 views
0

CGRectContainsRect 및 CGRectIntersectsRect에 어떤 종류의 오버 헤드가 있는지 알고 있습니까?직사각형 비교

나는 사용자 제스처를 추적하고 테스트하려고하고 있는데, 나는 아마도 두 가지를 모두 조합해야하지만 영향의 확실하지는 않을 것이라고 생각하고 있습니다.

5 개 사각형의 격자를 상상하고 사용자가 2

이 쉽게 광장 1에서 선을 그린 경우 테스트 할, CGRectContainsRect은 만 평방 1, 2

그려 그랬다면 나를 알 수 있습니다

만약 그들이 사각형 1, 2, 3을 그린다면 CGRectContainsRect가 NO라고 말하는 것과 같은 테스트는 false를 리턴 할 것입니다.

OK 아니요 사각형 1, 2 및 3으로 그리기를 테스트하고 사용자가 사각형 1과 2 만 그려야한다고 가정하면 CGRectContainsRect는 YES를 반환합니다. 사용자 스트로크가 제곱 1, 2 및 3 내에 있기 때문입니다. ........ 그러나 실제로는 3 각주가 아니므로 잘못된 정보를 얻습니다!

+0

Checkout 특정 UIView 내에 터치가 있었는지 확인할 수있는 hitTest를 확인하십시오. 사실 직사각형을 비교하는 것보다 더 간단한 방법은 제스처 인식기를 작성하는 것입니다. 당신의 설명에서, 이것은 사용자가 제곱을 가로 질러 움직일 때 촉발되는 커스텀 제스처처럼 보입니다. 각 제곱 된 사각형은 순서대로 기록됩니다. – Anurag

+0

프레임 당 *** 수천 ***을 사용할 수 있으며 성능에 대해 생각조차하지 않습니다. 그것은 문제가 아닙니다. – Fattie

답변

1

각 5 개의 사각형을 반복하면서 각각의 CGRectIntersectsRect를 확인할 수 있습니다. 더 큰 정사각형 배열의 경우 이것은 매우 비효율적이 될 수 있지만, 내 머리 꼭대기에서 나는 생각할 수있는 최선의 방법입니다.

+0

답장을 보내 주시면 감사하겠습니다. ;-) – user7865437