检查ViewController上的重叠对象

时间:2014-05-19 13:46:52

标签: objective-c object ios7 uiview

如何以编程方式检查UIViewController上是否有2个对象重叠?我正在使用此方法随机移动UIView周围的对象。

CGFloat x = (CGFloat) (arc4random() % (int) self.container.bounds.size.width);
CGFloat y = (CGFloat) (arc4random() % (int) self.container.bounds.size.height);

CGPoint squarePostion = CGPointMake(x, y);
_button.center = squarePostion;

我使用这段代码移动了3个对象。有时他们互相重叠,这是一个问题。无论如何,我可以检查对象是否相互重叠,然后才能让它们可见?
谢谢你们!

1 个答案:

答案 0 :(得分:2)

您可以使用CGRectIntersectsRect检查两个视图的帧是否相交。

你会这样做:

if(CGRectIntersectsRect(view1.frame, view2.frame)) {
  //The two views are "overlapping"
}

在此处查找更多信息:https://developer.apple.com/library/ios/documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html#//apple_ref/c/func/CGRectIntersectsRect