UIPanGestureRecognizer translationInView 总是返回一个相对点

UIPanGestureRecognizer translationInView always returning a relative point

我有一个 UIPanGestureRecognizer 附加到我的 window 中的地图视图(并模拟识别手势,以便我可以在地图平移时接收事件)。但是由于某种原因我无法弄清楚,[UIPanGestureRecognizer translationInView:] 总是 returns 相对于平底锅原点的坐标。事实上,无论我传递给它什么视图参数,它的行为都是相同的,甚至 nil!

我不明白为什么它不告诉我相对于我传入的视图的坐标。

self.mapViewPan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
self.mapViewPan.delegate = self;
[self.mapView addGestureRecognizer:self.mapViewPan];

*

- (void)pan:(UIPanGestureRecognizer*)sender {
    CGPoint translatedPoint = [sender translationInView:self.view];
    NSLog(@"%f, %f", translatedPoint.x, translatedPoint.y);
}

您有什么理由不为此使用 MKMapViewDelegate 方法吗? mapView:regionDidChangeAnimated: 应该让您在滚动时获取地图区域。

没关系,我好像误解了translationInView:到底代表什么。无论如何,它似乎都与触摸的起源有关(这让我想知道它的参数实际上会影响什么)。

原来我真正想要的是locationInView::

CGPoint touchPoint = [sender locationInView:self.view];

此 returns 触摸在视图坐标中的位置。