8

我有UIScrollView几个子视图等等。我也是 scrollView 的delegate并且已经实现了- (void)scrollViewDidScroll:(UIScrollView *)scrollView. 在我的卷轴下面有另一个视图。

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

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

- (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但只有在触摸结束后才会生效。而且我尝试了许多其他属性,但似乎都没有。

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

4

1 回答 1

35

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

对象

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

迅速

self.scrollView.panGestureRecognizer.isEnabled = false
self.scrollView.panGestureRecognizer.isEnabled = true
于 2013-08-28T20:09:19.870 回答