我的窗口中有一个UIPanGestureRecognizer
附加到地图视图(并且模拟识别手势,因此我可以在地图平移时接收事件)。但由于某些原因我无法弄清楚,[UIPanGestureRecognizer translationInView:]
总是返回相对于平移原点的坐标。实际上,无论我传递给它的视图参数如何,它的行为都相同,即使是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);
}
答案 0 :(得分:3)
没关系,我似乎误解了translationInView:
实际代表的内容。它似乎与触摸的起源无关(这让我想知道它的参数实际上是什么影响)。
事实证明我真正想要的是locationInView:
:
CGPoint touchPoint = [sender locationInView:self.view];
这将返回视图坐标中触摸的位置。
答案 1 :(得分:0)
你有什么理由不使用MKMapViewDelegate方法吗? mapView:regionDidChangeAnimated:可让您在滚动时获取地图区域。