Подтвердить что ты не робот

Как выяснить, пересекаются ли два CGRect?

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

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

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

Как проверить это на rect и anotherRect?

4b9b3361

Ответ 1

Используйте bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

Swift 3:

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

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

Ответ 2

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

[[obstacle1.layer presentationLayer] frame];

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

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

    NSLog(@"Collision 1");

}