0

ビューに 2 つの小さな UIView が追加されたとします。次に、3 番目の UIView が上に追加されます。3 番目の UIView が最初の 2 つの UIView と重なるかどうかを判断するにはどうすればよいですか?

4

1 に答える 1

0

これを非常に簡単に計算する UIView サブクラス (コンテナ) にメソッドを書くことができます。

-(NSArray*)getOverlappingViewsForSubview:(UIView*)mySubview {
    NSMutableArray* overlappedSubviews = [[[NSMutableArray alloc] init] autorelease];

    for(UIView* someSubview in self.subviews) {
        if(CGRectIntersectsRect(mySubview.frame, someSubview.frame)) {
            [overlappedSubviews addObject:someSubview];
        }
    }

    return overlappedSubviews;
}

そのようなものは機能するはずです-交差したビューの数だけを知る必要がある場合は、そのメソッドの結果で count を呼び出すことができます (または、交差したビューの配列ではなくカウントを返すようにメソッドを書き直します)。

于 2012-10-06T05:47:12.377 に答える