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 回答