Как выяснить, пересекаются ли два CGRect? - PullRequest
29 голосов
/ 26 апреля 2010

In -drawRect: Я хочу проверить, пересекается ли предоставленный прямоугольник с anotherRect.

Я плохо разбираюсь в математической математике, особенно в английском, поэтому я хочу сказать:

Если у вас есть два листа бумаги на столе, и один из них покрывает другой либо полностью, либо просто небольшой частью, это rectsIntersect = YES.

Как проверить это для rectи anotherRect?

Ответы [ 2 ]

62 голосов
/ 26 апреля 2010

Использование bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

Swift 3:

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

Пример: rect1.intersects(rect2)

1 голос
/ 07 марта 2013

Попробуйте использовать это .. Анимируя изображение, вы можете получить его реальный кадр следующим образом:

[[obstacle1.layer presentationLayer] frame];

Итак, легко будет сделать столкновение двух изображений

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

    NSLog(@"Collision 1");

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...