如何找到UIPanGestureRecognizer的最近点(在网格中)?

时间:2013-08-25 19:11:38

标签: objective-c

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-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];