我有一个简单网格的应用。 (我有一个NSValue
数组,其中包含每个网格空间中心点的CGPoint
。)
用户可以触摸屏幕上的任何位置,我想知道如何找到最接近用户触摸的网格空间。
答案 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];