ios UIPanGestureRecognizer指针位置

时间:2012-03-12 22:25:16

标签: ios uipangesturerecognizer

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
[self addGestureRecognizer:panRecognizer];

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

上面的代码会记录当前平移的相对位置,但是如何获得我所在视图的绝对位置?

我只是想将UIImageView滑动到用户手指所在的位置。

3 个答案:

答案 0 :(得分:34)

translationInView为您提供平移(x已更改多少),而不是视图中平移的位置(x的值)。如果您需要平移的位置,则必须使用方法locationInView

您可以按如下方式找到相对于视图的坐标:

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

或者相对于superview:

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

或者相对于窗口:

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

答案 1 :(得分:0)

我认为这样的简单方法是获取触摸的x和y并跟踪它,一旦它有2个点(比如X:230 Y:122),你将UIScroll视图的滚动设置为x和y。

我不确定我是如何得到这个答案的...如果没有帮助,请不要投票给我,我仍然是菜鸟D:

答案 2 :(得分:0)

<强>夫特

您的手势与CGPoint的相对位置(self.view):

print( gesture.locationInView(self.view) )