如何在scrollViewDidScroll方法中获取触摸位置?

时间:2011-09-10 16:40:31

标签: iphone ios

滚动屏幕时,我尝试触摸位置。 我尝试从touchBegin()获取它,但我不能。 那是因为touchBegin在滚动期间从未调用过。 我怎么解决这个问题??? 快点回答我。

2 个答案:

答案 0 :(得分:2)

我找到了自己的解决方案。

首先,我将scrollView.contentSize设置为scrollView.frame。所以它不能调用scrollViewDidScroll

- (id)initWithFrame:(CGRect)frame
{
    ....
    self.frame = frame
    self.contentSize = frame;
    ....
}

其次,当touchesBegan设置我想要的scrollView.contentSize时。然后事件将转到scrollViewDidScroll。你可以采取行动。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
      ....
    self.contentSize = myView.frame.size;
      ....
}

Thrid,在scrollViewDidEndDecelerating中设置contentSize并保存contentOffest;

-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    CGPoint pointTemp = self.contentOffset;
    self.contentSize = self.frame.size;
    self.contentOffset = pointTemp;
}

这将是可悲的方式。如果您了解其他,请教我

答案 1 :(得分:2)

使用scrollview手势识别器:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGPoint positionInView = [scrollView.panGestureRecognizer locationInView:myView];
}