2011-02-08 13 views

risposta

11

È possibile utilizzare la funzione CGRectIntersectsRect per testare facilmente l'intersezione del rettangolo, a condizione che UIImageViews condivida la stessa superview (più esattamente, hanno lo stesso spazio di coordinate).

probabile che sarà necessario aggiungere codice simile al seguente:

-(void) touchesEnded:(NSSet *) touches { 
    if(CGRectIntersectsRect([imageViewA frame], [imageViewB frame])) { 
     NSLog(@"Do something."); 
    } 
    } 

al UIView che ospita entrambe le viste di immagini, o un metodo simile che viene chiamato ogni volta che la resistenza è stata completata.

+0

Questo ha fatto il trucco, vi ringrazio molto! – John

+0

Se non condividono lo stesso spazio di coordinate: 'BOOL intersects = CGRectIntersectRect (viewA.bounds, [viewA convertRect: viewB.bounds fromView: viewB])' – nielsbot

0

È possibile utilizzare:

CGRectIsNull (CGRectIntersection (view1.bounds, view2.bounds));

1

provare qualcosa di simile.

if (CGRectContainsRect([myImageView1 frame], [myImageView2 frame])) { 
     NSLog(@"Overlaped, it's working!"); 
} 
0

In Swift 3.0 è diventato ...

if (self.image2P.bounds.contains(self.image3P.bounds)) { 
    print("Overlaped, it's working!") 
}