IPHONE-检测指针是否在坐标内

IPHONE-检测指针是否在坐标内,iphone,iphone-sdk-3.0,Iphone,Iphone Sdk 3.0,我有一个可以用手指在屏幕上移动的物体。这个对象是一个图像,一个像缩略图一样的小图像 在屏幕上我有一个背景图像,其中画了10个矩形。这些矩形是背景图像的一部分。背景图像是哑的,只是一个UIImageView 每次缩略图经过10个区域中的一个区域时,我都会播放10种声音,由背景上的10个矩形表示。每个区域都有自己的声音 我所拥有的只是平移缩略图的大小及其坐标(如原点、中心、宽度和高度)。我有实时的原点(x和y)坐标 重点是:考虑到一定的公差(例如+-10像素),如何检测平移缩略图是否超过10个正方形

我有一个可以用手指在屏幕上移动的物体。这个对象是一个图像,一个像缩略图一样的小图像

在屏幕上我有一个背景图像,其中画了10个矩形。这些矩形是背景图像的一部分。背景图像是哑的,只是一个UIImageView

每次缩略图经过10个区域中的一个区域时,我都会播放10种声音,由背景上的10个矩形表示。每个区域都有自己的声音

我所拥有的只是平移缩略图的大小及其坐标(如原点、中心、宽度和高度)。我有实时的原点(x和y)坐标

重点是:考虑到一定的公差(例如+-10像素),如何检测平移缩略图是否超过10个正方形中的一个,并发现它是什么区域

问题是:由于我有实时的原点坐标,我总是可以创建一个循环来检查这个值是否在10个矩形中的一个内,但这是CPU密集型的,因为循环将针对缩略图滚动的每个像素运行

关于如何做到这一点,还有其他想法吗


谢谢你的帮助

您可以按预定义的间隔轮询坐标,而不是不断轮询


这背后的想法是在主循环中启动一个(比如1秒)计时器。计时器完成后,将触发一个事件,您可以在其中查询当前位置。然后使用该值检查它位于哪个矩形中。

我会使用计时器触发一个方法,该方法每.2到.5秒检查一次:

[NSTimer scheduledTimerWithTimeInterval:.2 target:self selector:@selector(checkPointInRects) userInfo:nil repeats:YES];

使用touchesBegind、moved、End缓存当前触摸并在checkPointInRects方法中引用它们。您可以使用CGRectContainsPoint来确定点是否位于任何给定的矩形中。

这些矩形是全部处于随机位置,还是并排排列?它们重叠吗?两排5个长方形,像网格一样。它们不重叠。