Iphone 当两个UIImageView重叠时,如何检测?

Iphone 当两个UIImageView重叠时,如何检测?,iphone,objective-c,iphone-sdk-3.0,ios4,Iphone,Objective C,Iphone Sdk 3.0,Ios4,我有两个UIImageView,一个是从左向右移动,另一个是触摸拖动。我希望每当imagetwo与imageone重叠时,NSLog在控制台上显示一条消息。如何执行此操作?如果UIImageView共享相同的superview(更确切地说,具有相同的坐标空间),则可以使用CGRectIntersectsRect功能轻松测试矩形相交 您可能需要添加如下代码: -(void) touchesEnded:(NSSet *) touches { if(CGRectIntersectsRect

我有两个UIImageView,一个是从左向右移动,另一个是触摸拖动。我希望每当imagetwo与imageone重叠时,NSLog在控制台上显示一条消息。如何执行此操作?

如果UIImageView共享相同的superview(更确切地说,具有相同的坐标空间),则可以使用
CGRectIntersectsRect
功能轻松测试矩形相交

您可能需要添加如下代码:

  -(void) touchesEnded:(NSSet *) touches {
    if(CGRectIntersectsRect([imageViewA frame], [imageViewB frame])) {
      NSLog(@"Do something.");
    }
  }
指向承载两个图像视图的UIView,或在完成拖动时调用的类似方法

您可以使用:


CGRectIsNull(cgrectcrossion(view1.bounds,view2.bounds))

试试这样的东西

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

在Swift 3.0中已成为

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

如果它们不共享相同的坐标空间:
BOOL intersects=CGRectIntersectRect(viewA.bounds,[viewA convertRect:viewB.bounds fromView:viewB])