找到用户在ScrollView中拖动手指的位置

时间:2015-03-16 17:01:36

标签: ios scrollview

我有一个scrollview,我在看用户输入。我想知道他们的手指在X平面上的位置。这可以通过ScrollView和/或其委托来实现,还是必须覆盖touchesBegan等?

4 个答案:

答案 0 :(得分:2)

我假设您设置了滚动视图委托。如果您这样做,那么您只需要实施UIScrollViewDelegate协议中的scrollViewDidScroll:方法......

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint touchPoint = [scrollView.panGestureRecognizer locationInView:scrollView];
    NSLog(@"Touch point: (%f, %f)", touchPoint.x, touchPoint.y);
}

这将在用户滚动时更新。

其他信息:请注意,如果您有类似UIPageControl的内容,您的滚动视图会在其间导航,则可能需要根据页数计算x位置(即如果每页的宽度为100像素,则第0页将从第0点开始,第1页在第100点开始,等等。)。

答案 1 :(得分:1)

CGPoint touchPoint = [scrollView.panGestureRecognizer locationInView:scrollView];
CGFloat x = touchPoint.x;

答案 2 :(得分:1)

CGPoint point = [_scrollView locationOfTouch:touchIndex inView:_scrollView];

touchindex:0表示第一次触摸,1,2,3表示

如果inview:nil则point将在窗口基座坐标sysytem

CGFloat x = point.x;
CGFloat y  = point.y

答案 3 :(得分:0)

我使用scrollView的panGesture,因为如果你只想知道垂直滚动时x平面的位置,它会更准确。

[self.scrollView.panGestureRecognizer addTarget:self action:@selector(handlePanForScrollView:)];

然后:

- (void)handlePanForScrollView:(UIPanGestureRecognizer *)gesture {
    CGPoint positionInView = [gesture locationInView:self.scrollView];

}