2011-02-08 80 views
5

我有兩個UIImageViews,其中一個從左到右移動,另一個是可拖動的。我希望當imagetwo與imageone重疊時,NSLog在控制檯上顯示消息。我該怎麼做呢?如何檢測兩個UIImageView重疊?

回答

11

您可以使用CGRectIntersectsRect函數輕鬆測試矩形交集,前提是UIImageViews共享相同的超視圖(更確切地說,具有相同的座標空間)。

可能你將需要添加類似下面的代碼:

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

到承載兩個圖像視圖,或當拖動結束時調用類似的方法UIView的。

+0

這並獲得成功,非常感謝你! – John 2011-02-08 05:23:26

0

您可以使用:

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

1

嘗試類似這樣的事情。

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

在雨燕3.0已經成爲...

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