Положение указателя ios UIPanGestureRecognizer - PullRequest
20 голосов
/ 13 марта 2012
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
[self addGestureRecognizer:panRecognizer];

- (void)pan:(UIPanGestureRecognizer *)gesture {
    NSLog(@"%f", [gesture translationInView:self].x);
}

Приведенный выше код запишет относительную позицию моего текущего панорамирования, но как я могу получить абсолютную позицию для вида, в котором я нахожусь?

Я просто хочу сдвинутьUIImageView туда, где находится палец пользователя.

Ответы [ 3 ]

34 голосов
/ 13 марта 2012

translationInView дает вам перевод панорамы (насколько х изменился), а не положение панорамы в представлении (значение х). Если вам нужно положение кастрюли, вы должны использовать метод locationInView.

Вы можете найти координаты относительно вида следующим образом:

- (void)pan:(UIPanGestureRecognizer *)gesture {
    NSLog(@"%f", [gesture locationInView:self].x);
}

Или относительно суперпредставления:

- (void)pan:(UIPanGestureRecognizer *)gesture {
    NSLog(@"%f", [gesture locationInView:self.superview].x);
}

Или относительно окна:

- (void)pan:(UIPanGestureRecognizer *)gesture {
    NSLog(@"%f", [gesture locationInView:self.window].x);
}
0 голосов
/ 20 января 2017

Swift

Относительное расположение (CGPoint) вашего жеста к self.view:

print( gesture.locationInView(self.view) )
0 голосов
/ 13 марта 2012

Я думаю, что простой способ что-то вроде этого состоит в том, чтобы получить координаты x и y касания и отслеживать его, как только у него есть 2 точки (скажем, X: 230 Y: 122), вы устанавливаете прокрутку вида UIScroll нах и у.

Я точно не знаю, как я получил этот ответ ... Если это не поможет, не голосуйте за меня, я все еще новичок D:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...