我有两个UIImageViews,其中一个是从左向右移动,另一个是触摸可拖动。我希望NSLog在控制台上显示一条消息,只要imagetwo重叠imageone。我该怎么做?
答案 0 :(得分:11)
如果UIImageViews共享相同的超视图(更确切地说,具有相同的坐标空间),您可以使用CGRectIntersectsRect
函数轻松测试矩形交集。
可能您需要添加如下代码:
-(void) touchesEnded:(NSSet *) touches {
if(CGRectIntersectsRect([imageViewA frame], [imageViewB frame])) {
NSLog(@"Do something.");
}
}
到托管两个图像视图的UIView,或者在拖动完成时调用的类似方法。
答案 1 :(得分:1)
尝试这样的事情。
if (CGRectContainsRect([myImageView1 frame], [myImageView2 frame])) {
NSLog(@"Overlaped, it's working!");
}
答案 2 :(得分:0)
您可以使用:
CGRectIsNull(CGRectIntersection(view1.bounds,view2.bounds));
答案 3 :(得分:0)
在Swift 3.0中已成为......
if (self.image2P.bounds.contains(self.image3P.bounds)) {
print("Overlaped, it's working!")
}