Iphone 当两个UIImageView重叠时,如何检测?
我有两个UIImageView,一个是从左向右移动,另一个是触摸拖动。我希望每当imagetwo与imageone重叠时,NSLog在控制台上显示一条消息。如何执行此操作?如果UIImageView共享相同的superview(更确切地说,具有相同的坐标空间),则可以使用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
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])