Ios 使superview响应子视图';在某些情况下,这是一种直觉
我有一个滚动视图,它包含一个子视图。子视图中添加了一个panGesture 我想要什么: 我需要pangesture在子视图上工作,只有在垂直平移的情况下。如果平移是水平进行的,我希望scrollView响应平移,而不是子视图。我怎样才能做到这一点Ios 使superview响应子视图';在某些情况下,这是一种直觉,ios,iphone,objective-c,uigesturerecognizer,uipangesturerecognizer,Ios,Iphone,Objective C,Uigesturerecognizer,Uipangesturerecognizer,我有一个滚动视图,它包含一个子视图。子视图中添加了一个panGesture 我想要什么: 我需要pangesture在子视图上工作,只有在垂直平移的情况下。如果平移是水平进行的,我希望scrollView响应平移,而不是子视图。我怎样才能做到这一点 注意:我可以通过编程方式找到水平平移的时间。既然您已经知道如何检测平移,那么在中,您需要在superview中实现委托协议,在子视图中实现委托属性,并将superview指定为子视图的委托 检测水平平移时,调用委托方法;检测垂直平移时,在子视图中实现
注意:我可以通过编程方式找到水平平移的时间。既然您已经知道如何检测平移,那么在中,您需要在superview中实现委托协议,在子视图中实现委托属性,并将superview指定为子视图的委托
检测水平平移时,调用委托方法;检测垂直平移时,在子视图中实现所需操作。有几种方法可以实现此操作:
superview
。但是,这会在两个视图之间产生强耦合,可能不应该这样做。它会很脆弱,很多人会认为它是代码气味。ui手势识别器
,并创建您自己的手势识别器,该识别器只识别垂直移动。使用它而不是UIPangestureRecognitor
uigesturecognizer
:
我还编写了自己的拖动手势识别器(类似于平移手势识别器),如果您愿意,可以使用它,或者查看一下,了解如何对uigesturecognizer
进行子类化。您可以使用该类识别仅在特定方向移动的触摸,否则它将失败(这将允许其他手势识别器识别,如scrollview)。它还具有许多其他定制和收集的信息,如velocity