我在 NSMutableArray 中有几个 UIImageViews。它们都在 superView 中。我想检查一个 UIImageView 是否与数组中的另一个 UIImageView 相交(碰撞、碰撞或触摸)。这是我一直在做的,但我认为应该有更好的方法。
for (UIImageView *b in _blocks) {
for (UIImageView *b2 in _blocks) {
if (CGRectContainsPoint(b2.frame, CGPointMake(b.center.x, b.center.y + b.frame.size.height/2))) {
// Do something
}
}
}
如果我想检查 ImageView 是否以这种方式接触超过 2 个 View ,代码将变得非常糟糕。这就是为什么我想知道一种更好的方法来做到这一点。
最佳答案
做这个:
NSMutableArray *arrIntersect = [NSMutableArray array];
for (UIImageView *b in _blocks) {
for (UIImageView *b2 in _blocks) {
if (b != b2 && CGRectIntersectsRect(b2.frame, b.frame)) {
if(arrIntersect.count > 2)
//count > 2
else
[arrIntersect addObject:b2];
}
}
}
关于objective-c - 在 NSMutableArray 中检查两个或多个 CGRect 是否接触的好方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12799961/