Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIScrollView上的UITapGestureRecognitor_Ios_Objective C_Uiscrollview - Fatal编程技术网

Ios UIScrollView上的UITapGestureRecognitor

Ios UIScrollView上的UITapGestureRecognitor,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,我在情节提要的UIScrollView上设置了一个UIAPTgestureRecognitor。滚动视图包含其他内容(两个UIView,一个UIWebView) 手势识别器属性如下所示: 操作:解除权限 委托:postViewController 手势识别器:滚动视图 状态:已启用 所需的磁带数:1 所需的触摸次数:1 取消触摸查看:是 延迟接触开始:否 延迟触控解除:是 滚动视图(相关)属性如下所示: userInteractionEnabled:是 canCancelContentTo

我在情节提要的UIScrollView上设置了一个UIAPTgestureRecognitor。滚动视图包含其他内容(两个UIView,一个UIWebView)

手势识别器属性如下所示:

  • 操作:解除权限
  • 委托:postViewController
  • 手势识别器:滚动视图
  • 状态:已启用
  • 所需的磁带数:1
  • 所需的触摸次数:1
  • 取消触摸查看:是
  • 延迟接触开始:否
  • 延迟触控解除:是
滚动视图(相关)属性如下所示:

  • userInteractionEnabled:是
  • canCancelContentTouches:是
但是,当我点击滚动视图上的任意位置时,手势不起作用。

必须实现委托类(符合UIgestureRecognitizerDelegate)

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

这样,点击手势就可以工作。

滚动视图有自己的手势识别器

您需要先覆盖或禁用该手势识别器

只有这样,你的手势识别器才能工作


更好的方法是在滚动视图中使用点击手势,而不是添加手势识别器。

我不确定是否可以在滚动视图中添加手势识别器,因为它的本机手势处理可能优先。GestureRecognitzer:shouldRecognitizewithGestureRecognitzer:从GestureRecognitzer委托尝试实现并查看其调用的方法可能很有趣您完全可以将手势识别器添加到scrollview,但我认为在这种情况下,scrollview的平移手势会吞噬您的点击。当点击手势被识别时,您必须要求scrollview的平移手势失败。我将尝试@LyndseyScott,谢谢!是的,如果你想让两种手势同时发生,一定要使用@Rakesh链接的解决方案。否则,您可能希望在点击过程中要求滚动失败。滚动视图有一个NSArray类型的属性GestureRecognitors,它将提供添加到滚动视图中的所有手势。您是对的,我将对此进行检查,但我不太确定。无论如何,谢谢你。