我有一个scrollview,我在看用户输入。我想知道他们的手指在X平面上的位置。这可以通过ScrollView和/或其委托来实现,还是必须覆盖touchesBegan
等?
答案 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];
}