取消当前的UIScrollView触摸

我有一个UIScrollView几个子视图等。 我也是scrollView的delegate ,并实现了- (void)scrollViewDidScroll:(UIScrollView *)scrollView 。 在我的卷轴下面还有另一种观点。

我想要显示该视图,如果scrollView的contentOffset在x轴上低于50px,请“重置”scrollView的contentOffset并取消当前的scrollView手势,以便用户在新视图出现时不会操作其内容。

我已经实现了这样的方法:

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.x < -50) { scrollView.contentOffset = CGPointZero; [self showBackView]; //here I want to cancel the current touch on the scrollview since it keeps scrolling if I drag my finger } } 

我已经尝试将userInteractionEnabled属性设置为NO但只有在触摸结束后才会生效。 我已经尝试了一堆其他的属性,但似乎没有工作。

我怎样才能解决这个问题?

尝试禁用滚动视图的panGestureRecognizer (然后重新启用它)。 这将取消当前的识别器会话:

 self.scrollView.panGestureRecognizer.enabled = NO; self.scrollView.panGestureRecognizer.enabled = YES;