IOS 中怎么判断一个区域是否被别的区域完全遮罩

oicuivu 2016-06-22 02:23:04
有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);
...全文
478 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oicuivu 2016-07-06
  • 打赏
  • 举报
回复
引用 2 楼 baidu_18525517 的回复:
建议把第二个和第三个区域合成一个最小的包含这两个区域的rect,然后再去判断
最后还是用数组判断的,声明一个数组,大小是最大区域的宽*高,初始化数组元素都为0,然后添加一个区域就将这个区域在数组中对应的元素设置为1,最后获取想要的区域所对应的元素,都为1则被完全覆盖,有为0的则未完全覆盖
baidu_18525517 2016-06-22
  • 打赏
  • 举报
回复
建议把第二个和第三个区域合成一个最小的包含这两个区域的rect,然后再去判断
不担心 2016-06-22
  • 打赏
  • 举报
回复
不知道你具体想判断什么,如果明确要判断区域的话,CGRectContainsRect如果不能满足你的要求,那估计你只能自己通过rect的各个值去比较判断了 如果你要判断一个视图是否包含在父视图里可以用这个方法 if ([aView isDescendantOfView:subview]) { //do something... }

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧