2010-04-26 15 views
27

En -drawRect: Quiero verificar si el rect proporcionado intersecta con otro Rect.¿Cómo saber si dos CGRect se cruzan?

no soy bueno en estas cosas geometría de las matemáticas y especialmente en Inglés así que lo que quiero decir es:

Si tiene dos hojas de papel sobre la mesa, y una de ellas se refiere a la otra, ya sea completamente o solo una pequeña porción, es rectsIntersect = YES.

¿Cómo verificar eso en rect y anotherRect?

Respuesta

60

Uso bool CGRectIntersectsRect (CGRect rect1,CGRect rect2);

Swift 3:

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

Ejemplo: rect1.intersects(rect2)

+1

Aquí es un blog que habla de ello: http://blogs.oreilly.com/iphone/2008/12/useful-core-graphics -functions.html –

+0

Gracias Brandon, él tiene la firma correcta (que yo no) –

+1

No hay problema, simplemente no quería que alguien se agachara con el nombre correcto y respondiendo. :) –

1

intenta utilizar este .. Mientras que la animación imageview puede obtener su propio bastidor por esto:

[[obstacle1.layer presentationLayer] frame]; 

lo tanto, será fácil de hacer colisión de dos imageview

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

    NSLog(@"Collision 1"); 

} 
Cuestiones relacionadas