UIPanGestureRecognizer translationInView всегда возвращает относительную точку
У меня есть 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);
}
2 ответа
Неважно, я, кажется, неправильно понял, что translationInView:
на самом деле представляет. Похоже, что он относительно происхождения касания независимо (что заставляет меня задуматься, на что действительно влияет его параметр).
Оказывается, я действительно хочу locationInView:
:
CGPoint touchPoint = [sender locationInView:self.view];
Это возвращает местоположение касания в координатах представления.
Есть ли причина, по которой вы не используете для этого методы MKMapViewDelegate? mapView: regionDidChangeAnimated: должен позволить вам получить регион карты при прокрутке.