How can I cancel other events when my UIPanGestureRecognizer occurs along side a UIScrollView?
我有一个添加到 UIScrollView 的 UIPanGestureRecognizer,当遇到 UIPanGestureRecognizer 的某些情况时,我想取消触摸/平移事件进入 UIScrollView,现在我有这样的事情:
1 2 3 4 5 6 | -(void)panRecognized:(UIPanGestureRecognizer *)sender { if(/* some logic */) { [sender cancelsTouchesInView]; } } |
但是调用 [sender cancelsTouchesInView] 不会停止在我的 UIScrollView 中发生滚动。
我来自 JavaScript 背景,我倾向于期望事件以相同的方式运行,我认为这是我的失败,他们没有。我发现很难理解 iOS 中事件的处理方式。
1 2 3 4 5 6 7 8 9 10 11 | -(void)panRecognized:(UIPanGestureRecognizer *)sender { if(/* some logic */ && sender.state == UIGestureRecognizerStateBegan) { [self.scrollView setUserInteractionEnabled:NO]; } else if(sender.state == UIGestureRecognizerStateEnded) { [self.scrollView setUserInteractionEnabled:YES]; } } |