首先确保它们在同一个视图中。convertRectToView
如果没有,则使用, 或获取他们的帧converRectFromView
。然后使用CGRectContainsPoint
类的CGGeometry
并检查一个按钮的任何角是否位于另一个按钮的框架中。
PS。你的角落将是:
CGFloat x1 = button1.frame.origin.x;
CGFloat y1 = button1.frame.origin.y;
CGFloat x2 = button1.frame.origin.x + button1.frame.size.width;
CGFloat y2 = button1.frame.origin.y + button1.frame.size.height;
你的角落将是:
CGPoint topLeft = CGPointMake(x1,y1);
CGPoint topRight = CGPointMake(x2,y1);
CGPoint bottomLeft = CGPointMake(x1,y2);
CGPoint bottomRight = CGPointMake(x2,y2);
这只是一种可能的解决方案。这只是为了帮助理解几何。
但最简单的解决方案是使用CGRectIntersectsRect (button1.frame, button2.frame);