取消当前的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;