2012-10-06 16 views
0

假設是否有2個小UIViews被添加到視圖中。 然後第三個UIView將被添加到頂端,我如何確定第三個UIView是否會重疊前兩個UIViews?iOS確定它會重疊多少個子UIViews

+1

比較幀。 – aroth

+0

'CGRectIntersectRect'' BOOL' –

+0

它下面有多少個子UIView會重疊?任何會返回一個整數的幫助函數都會指示它會重疊多少個UIViews? –

回答

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; 
} 

類似的東西應該工作 - 你可以調用該方法,如果結果計數您只需要知道多少個視圖相交(或者重寫該方法以返回一個計數而不是相交視圖的數組)。