0

您好,作为 IBOutletCollection 的一部分,我有 3 个视图。它们位于名为 myArrayOfViews 的数组中。我希望能够使用 CGRectIntersectsRect 来确定这三个视图中的任何一个何时重叠,但到目前为止还没有运气。我以为我可以遍历数组两次,然后运行 ​​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!");
        }
    }

}
4

1 回答 1

1

你弄清楚了问题所在。以下是如何添加两个视图不相同的检查:

for (UIView *view1 in self.myArrayOfViews) {
    for (UIView *view2 in self.myArrayOfViews) {    
        if (view1 != view2 && CGRectIntersectsRect(view1.frame, view2.frame)) {
            NSLog(@"overlap!");
        }
    }    
}
于 2013-05-19T02:19:12.380 回答