2014-12-31 43 views
1

我在故事板中的UIScrollView上设置了UITapGestureRecognizer。滚动视图包含其他内容(两个UIView,一个UIWebView)。UIScrollView上的UITapGestureRecognizer

手势识别性能如下:

  • 行动:dismissPopover
  • 委托:postViewController
  • gestureRecognizers:滚动查看
  • 状态:启用
  • numberOfTapsRequired:1
  • numberOfTouchesRequired:1
  • cancelTouchesInView:YES
  • delayTouchesBegan:否
  • delayTouchesEnded:YES

滚动视图(相关)性能如下:

  • userInteractionEnabled:是
  • canCancelContentTouches:是

然而,当我点击上滚动视图的任何地方,手势不起作用。

+0

我不确定你可以添加一个手势识别器的滚动视图,因为它本地的手势处理可能优先。方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:来自gesturerecognizer委托可能会很有趣,试图实现并看看它是否被调用 – manecosta

+0

你可以绝对地为scrollview添加手势识别器,但是我认为在这种情况下,你的scrollview的平移手势吞噬了你的水龙头。当轻敲手势被识别时,您必须要求滚动视图的平移手势失败。 –

+0

我会试试@LyndseyScott,谢谢! – entropid

回答

3

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

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

这样,敲击手势会工作。

0

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

您需要重写该手势识别器或先禁用该手势识别器。

然后只有你的手势识别器才能工作。

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

+0

是的,但这需要继承它的权利? – entropid

+0

滚动视图有一个属性** gestureRecognizers **,其类型为NSArray,它可以将所有手势添加到滚动视图中。 –

+0

你说得对,我会检查一下,但我不太确定。不管怎么说,还是要谢谢你。 – entropid

相关问题