2 lantianyiming lantianyiming 于 2013.06.13 10:27 提问

检测subView顶部的另一个subView

实现目标:在将一个子视图拖拽到顶部时,检测另一个子视图看看它们有没有重叠。应该怎么检测?

拖拽元素使用的是UIPanGestureRecognizer,谢谢。

2个回答

g989_1314125
g989_1314125   2013.06.13 14:09
已采纳

使用CGRectIntersectsRect()实现:

if(CGRectIntersectsRect(firstSubview.frame, secondSubview.frame))
{
   //collides, do your task here
}
zhanglei5415
zhanglei5415   Rxr 2013.06.13 11:20

只能是判断两个视图的位置中的点是否有重叠

如果判断一个CGRect 是否被另外一个包含可以使用 CGRectContainsRect() 函数. 如果判断两个CGRect是否相交 可以使用CGRectIntersectsRect();

你可以根据自己的需求选择适当的函数来判断.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
UIView 查找subview 和 层次
CGRect frame =  [[UIScreen mainScreen] bounds];        UIView *views = [[UIView alloc]init];    views.frame = CGRectMake(10, 30,frame.size.width-20 , frame.size.height-20-20);    views.backgroundColor
Can't add self as subview
iOS7刚发布的时候,总是出现这个 Can't add self as subview  的崩溃,团队内部没出现过,但是外部用户的crash频频上报这个崩溃。
ios 'Can't add self as subview'崩溃日志详解
问题描述:这个问题非常常见,就是平时我们做一个按钮(我们假设这个页面是RootVC),按钮加一个事件,点击这个事件的时候会push出一个新的控制器A,当我们连续快速(时间间隔在0.5S内,也就是PUSH前一个事件的PUSH动画还没结束之前)点击两次这个按钮的时候,就会导致这个按钮连续响应了两次事件,同时推出了两个控制器A1、A2(这两个控制器都是A类型的),当我们再次点击A1(A2)返回的时候,点击
错误:Can't add self as subview
错误错误是这样描述的: * Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘Can’t add self as subview’
使用merge subView优化布局
减少视图层级 merge merge标签在UI的结构优化中起着非常重要的作用,它可以删减多余的层级,优化UI。merge多用于替换FrameLayout或者当一个布局包含另一个时,merge标签消除视图层次结构中多余的视图组。例如你的主布局文件是垂直布局,引入了一个垂直布局的include,这是如果include布局使用的LinearLayout就没意义了,使用的话反而减慢你的UI表现。这时可以使用
UIView与subview之间事件响应链
原文地址:http://my.oschina.net/megan/blog/143947 我有如上图所示的ViewA和ViewB,其中ViewA是superview。现在我想对他们添加事件或者手势。有如下情况: 1. touch move ViewB,想要ViewA跟着走,或者反过来,touch move ViewA,想要ViewB跟着走,一种方法。将ViewB(子view)的
使用获取subview获取子view
通常我们在view层级里面对subView的操作可以通过两种方式:1、保留一个subview的引用,然后在类中通过该引用对该subview 进行操作,但是要注意在适当的位置添加内存维护的代码,退出前手动释放。2、设置subview的Tag,让后在要使用的时候,通过 viewWithTag获取到相应的subview,这种方法比较简洁,也不用自己去维护内存。 说直白点,就是父View通过tag获
【BUG】layer与subView层次顺序
GOOD GOOD STUDY, DAY DAY UP! 【场景】: Swift语言环境中,自定义二维码扫描界面;【问题】: 调用系统摄像头,添加自定义扫描动画视图,在模拟器中可以看到自定义的视图,但在真机测试时却无自定义视图;【原因】: 先在VC视图添加自定义动画子视图,之后将摄像头capture添加到了VC视图的layer层;添加子视图,那么子视图的layer层也就相应地添加到了父视图的la
用递归的方法统一定制view的所有subview的外观
1.设置当前viewcontroller 的所有UILable 的背景颜色
iOS 遍历所有子视图subviews的2种方法
方法一,比较直接