【发布时间】:2013-12-22 21:01:56
【问题描述】:
我有一个 UIButton 和一个 UIView 属于两个不同的视图层次结构,当我将按钮拖到“viewTrashArea”时,我试图检测碰撞。
问题是按钮的框架和视图的框架在不同的坐标中,因此使碰撞认为它们是在触摸但彼此相距很远。
如何根据全局屏幕位置检测碰撞?
【问题讨论】:
标签: ios cocoa-touch cgrect
我有一个 UIButton 和一个 UIView 属于两个不同的视图层次结构,当我将按钮拖到“viewTrashArea”时,我试图检测碰撞。
问题是按钮的框架和视图的框架在不同的坐标中,因此使碰撞认为它们是在触摸但彼此相距很远。
如何根据全局屏幕位置检测碰撞?
【问题讨论】:
标签: ios cocoa-touch cgrect
您需要将位置转换为通用坐标系。为此,请使用UIView 方法convertRect:fromView: 和convertRect:toView:。
【讨论】:
给定
UIButton *button;
UIView *viewTrashArea;
如果它们相交,这条线将返回 true:
CGRectIntersectsRect([button convertRect:button.bounds toView:viewTrashArea], viewTrashArea.bounds);
【讨论】: