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