iOS oc判断两个UI控件是否有重叠

2025-02-24 19:03:57
推荐回答(1个)
回答1:

//两个控件都是在self.view上以(0.0)为原点

UIView*view1 = [[UIViewalloc]initWithFrame:CGRectMake(0,0,100,100)];

view1.backgroundColor= [UIColoryellowColor];

self.yellowView= view1;

[self.viewaddSubview:view1];

UIView*view2 = [[UIViewalloc]initWithFrame:CGRectMake(0,180,100,100)];

view2.backgroundColor= [UIColorredColor];

self.redView= view2;

[self.viewaddSubview:view2];

//判断两个控件是否有交互:(前提是在同一个父控件上面)

BOOLisMutul =CGRectIntersectsRect(self.whiteLabel.frame,self.blackLabel.frame);

//NSLog(@"isMutul---%d",isMutul); 有交互返回1 没重叠 返回0

// 2 第二种情况 两个控件不在同一个父控件上面 这时我们就需要把这两个父控件转换为以当前主窗口为坐标原点 判断白色按钮和黑色按钮是否有重叠(黑色label在黄色view上 白色label在红色view上面)