0

こんにちは、IBOutletCollection の一部として 3 つのビューがあります。それらは、myArrayOfViews という配列にあります。CGRectIntersectsRect を使用して、これら 3 つのビューのいずれかがいつ重なるかを判断できるようにしたいと考えていますが、今のところうまくいきません。配列を 2 回ループしてから 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

あなたは問題が何であるかを理解しました。2 つのビューが同じではないというチェックを追加する方法は次のとおりです。

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 に答える