我有一个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
,但只有在触摸结束后才会生效。我尝试过其他一些属性,但似乎都没有。
我该如何解决这个问题?
答案 0 :(得分:35)
尝试禁用滚动视图的panGestureRecognizer
(然后重新启用它)。这将取消识别器的当前会话:
self.scrollView.panGestureRecognizer.enabled = NO;
self.scrollView.panGestureRecognizer.enabled = YES;
self.scrollView.panGestureRecognizer.isEnabled = false
self.scrollView.panGestureRecognizer.isEnabled = true