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

Posted

技术标签:

【中文标题】当我的 UIPanGestureRecognizer 与 UIScrollView 一起发生时,如何取消其他事件?【英文标题】:How can I cancel other events when my UIPanGestureRecognizer occurs along side a UIScrollView? 【发布时间】:2013-06-11 13:56:17 【问题描述】:

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

-(void)panRecognized:(UIPanGestureRecognizer *)sender 

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

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

我来自 javascript 背景,我倾向于期望事件以相同的方式运行,我认为这是我的失败,他们没有。我发现很难理解 ios 中事件的处理方式。

【问题讨论】:

【参考方案1】:
-(void)panRecognized:(UIPanGestureRecognizer *)sender 

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


【讨论】:

虽然这可行,但我希望有一个更通用的答案,可以阻止其他地方的事件。

以上是关于当我的 UIPanGestureRecognizer 与 UIScrollView 一起发生时,如何取消其他事件?的主要内容,如果未能解决你的问题,请参考以下文章

当我将我的 laravel 项目放入 xampp 时,我的登录不起作用

当我在手机上尝试我的应用程序时,我的 xml 不会加载

为啥当我滚动我的 tabelview 单元格时我的 imageview 正在缩小?

当我的程序“无响应”时,为啥我的paintBox Canvas 被擦除了?

当我的应用在 fg 上时,我的应用如何发送推送通知?

当我删除我的 iOS 应用程序推送通知状态仍然存在