-1

我有一个带有简单网格的应用程序。(我有一个NSValues 数组,其中包含CGPoint每个网格空间的中心点。)

用户可以触摸屏幕上的任何位置,我想知道如何找到最接近用户触摸的网格空间。

4

2 回答 2

1

使用勾股定理。到点的距离 = sqrt((p2.x - p1.x)^2 + (p2.y - p1.y)^2)。如果 p1 是触摸点,请使用这个等式,p2 是网格上的每个点,并找到最大距离

于 2013-08-25T22:27:12.520 回答
-2

您可以使用以下方法来执行此操作:

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {<br>
        id hitView = [self hitTest:currentTouchPoint withEvent:event];<br>
        if ([hitView isKindOfClass:[RDWord class]]) { // basically find the type of view you  
                                                       // want over here                              
        }

}

或者你可以使用如下:

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
UIView *hitView = [self hitTest:location withEvent:event];
于 2013-08-25T19:24:40.877 回答