当我的UIPanGestureRecognizer出现在UIScrollView旁边时,如何取消其他事件?

时间:2013-06-11 13:56:17

标签: ios uiscrollview event-handling uipangesturerecognizer

我有一个UIPanGestureRecognizer,我添加到UIScrollView,当满足UIPanGestureRecognizer的某些情况时,我想取消触摸/平移事件进入UIScrollView,现在我有这样的事情:

-(void)panRecognized:(UIPanGestureRecognizer *)sender {

    if(/* some logic */) {
          [sender cancelsTouchesInView];
    }
}

然而,调用[sender cancelsTouchesInView]并不会停止在我的UIScrollView中滚动。

我来自一个很大的JavaScript背景,我倾向于期望事件以相同的方式表现,我认为这是我的垮台,他们没有。我发现很难理解iOS中如何处理事件。

1 个答案:

答案 0 :(得分:1)

-(void)panRecognized:(UIPanGestureRecognizer *)sender {

    if(/* some logic */  && sender.state == UIGestureRecognizerStateBegan) {
          [self.scrollView setUserInteractionEnabled:NO];
    }
   else if(sender.state == UIGestureRecognizerStateEnded)
    {
          [self.scrollView setUserInteractionEnabled:YES];
    }

}