使用CGRectIntersectsRect与IBOutletCollection的uiview数组



您好,我有3个视图作为IBOutletCollection的一部分。它们在名为myArrayOfViews的数组中。我想能够使用CGRectIntersectsRect来确定何时这3个视图重叠,但到目前为止没有运气。我想我可以循环通过数组两次,然后运行CGRectIntersectsRect,但没有运气。我错过了什么?提前感谢!

for (UIView *view1 in self.myArrayOfViews) {
    NSLog(@"view1 is %@",view1);
    for (UIView *view2 in self.myArrayOfViews) {
        NSLog(@"view2 is %@",view2);
        if( CGRectIntersectsRect(view1.frame, view2.frame)) {
            NSLog(@"overlap!");
        }
    }
}

你找到问题所在了。下面是如何添加检查两个视图是否相同的方法:

for (UIView *view1 in self.myArrayOfViews) {
    for (UIView *view2 in self.myArrayOfViews) {    
        if (view1 != view2 && CGRectIntersectsRect(view1.frame, view2.frame)) {
            NSLog(@"overlap!");
        }
    }    
}

最新更新