有3个区域,假如第一个在最下面,那么怎么判断它能否被其他两个区域完全遮住呢?
//第一个区域 CGRect currentRect = CGRectMake(0, 0, 256, 128); //假如第二个或第三个区域是这样的 //CGRect rect = CGRectMake(0, 0, 256, 128); //大于或等于第一个区域 //那么可以通过CGRectContainsRect(rect, currentRect)判断第一个区域能否在第二区域中 //但是,假如第二区域只遮住了第一区域的一部分,而第三个区域遮住第一个区域剩余的部分的话,应该怎么判断呢 //相似这样 CGRect rect2 = CGRectMake(0, 0, 100, 128); CGRect rect3 = CGRectMake(100, 0, 156, 128);
解决方案
20
不知道你具体想判断什么,假如明确要判断区域的话,CGRectContainsRect假如不能满足你的要求,那估计你只能本人通过rect的各个值去比较判断了
假如你要判断一个视图能否包含在父视图里可以用这个方法
if ([aView isDescendantOfView:subview]) {
//do something…
}
假如你要判断一个视图能否包含在父视图里可以用这个方法
if ([aView isDescendantOfView:subview]) {
//do something…
}
20
建议把第二个和第三个区域合成一个最小的包含这两个区域的rect,然后再去判断