ios - 当我的 UIPanGestureRecognizer 与 UIScrollView 一起发生时,如何取消其他事件?

标签 ios uiscrollview event-handling uipangesturerecognizer

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

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

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

但是调用 [sender cancelsTouchesInView] 并不会阻止我的 UIScrollView 中发生滚动。

我有丰富的 JavaScript 背景,我倾向于期望事件以同样的方式运行,但我认为事实并非如此,这是我的失败。我发现很难理解 iOS 中如何处理事件。

最佳答案

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

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

}

关于ios - 当我的 UIPanGestureRecognizer 与 UIScrollView 一起发生时,如何取消其他事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17045956/

相关文章:

ios - 如何使用 Swift 参数在 Swift 协议(protocol)中定义可选方法?

objective-c - NSDocumentDirectory 中文件的创建日期

ios - 坚持一个 RLMObject

ios - ios中如何将scrollview的内容保存到照片库

ios - UIScrollView 优于 MKMapView

c# - 为什么 ItemAdd 事件在我的“已发送邮件”文件夹中停止处理?

javascript - 使我的点击双击事件正常工作

ios - 如何更改 UIToolbar 高度?

swift - 无法正确隐藏到 UINavigationBar

jquery 在右键单击事件中获取 <a> 元素的主机名