CGRectIntersectsRect来自不同视图层次结构的两个帧

时间:2013-12-05 18:50:18

标签: ios cocoa-touch cgrect

我有一个属于两个不同视图层次结构的UIButton和UIView,当我将按钮拖到“viewTrashArea”时,我试图检测到碰撞。

问题是按钮的框架和视图的框架位于不同的坐标中,因此碰撞时认为它们正在接触但是它们彼此远离。

如何根据全局屏幕位置检测到碰撞?

2 个答案:

答案 0 :(得分:0)

您需要将位置转换为通用坐标系。为此,请使用UIView方法convertRect:fromView:convertRect:toView:

答案 1 :(得分:0)

鉴于

UIButton *button;
UIView *viewTrashArea;

如果它们相交,则该行将返回true:

CGRectIntersectsRect([button convertRect:button.bounds toView:viewTrashArea], viewTrashArea.bounds);