开发者

How do I detect whenever two UIImageView overlap?

I have two UIImageViews, one of them is moving from left to right, the other one is touch draggable. iI want NSLog to show up a message on console when开发者_如何学运维ever imagetwo overlaps imageone. How Do I do this?


You can use the CGRectIntersectsRect function to easily test rectangle intersection, provided the UIImageViews share the same superview (more exactly, have the same coordinate space).

Likely you will need to add code like the following:

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

to the UIView that hosts both image views, or a similar method that is called whenever the drag is completed.


try something like this.

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


You can use:

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


In Swift 3.0 has become...

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜