2010-04-26 9 views
27

-drawRect : 제공된 rect가 anotherRect와 교차하는지 확인하고 싶습니다.두 개의 CGRect가 교차하는지 알아내는 방법은 무엇입니까?

당신이 책상에 종이 두 장이있는 경우, 그 중 하나가 다른 하나를 완전히 커버 :

나는 그래서 내가하고 싶은 말은 무엇을이 기하 수학 물건을 잘 특히 영어에 아니에요 또는 아주 작은 부분 인 경우 rectsIntersect = YES입니다.

rectanotherRect을 확인하는 방법은 무엇입니까?

답변

60

사용 bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

스위프트 3 :

public func intersects(_ rect2: CGRect) -> Bool 

예 : rect1.intersects(rect2)

+1

의 충돌이 그것에 대해 이야기 블로그 게시물입니다 수 있도록합니다 http://blogs.oreilly.com/iphone/2008/12/useful-core-graphics -functions.html –

+0

Brandon에게 감사합니다. 올바른 서명이 있습니다. (나는 그렇지 않습니다.) –

+1

아무런 문제가 없지만 정확한 이름을 사용하여 답을하고 싶지 않았습니다. :) –

1

봅니다이 사용하는 .. 을 이미지 뷰를 애니메이션 당신이 할 수있는 동안 이것에 의해 실제 프레임을 얻을 :

[[obstacle1.layer presentationLayer] frame]; 

그래서, 쉽게 여기에 두 개의 이미지 뷰

if (CGRectIntersectsRect([[obstacle1.layer presentationLayer] frame], [[bgImageView.layer 
    presentationLayer] frame])) 
{ 

    NSLog(@"Collision 1"); 

} 
관련 문제