我一直在这里寻找所有其他类似的主题,使用 UIGestureRecognizers、使用 hitTest:withEvent、pointInside:withEvent: 等,但对于我需要实现的目标似乎没有什么好说的。
基本上我有一个主视图(一个普通 UIViewController 的 self.view)和一个小的矩形 UIScrollView 附加到它的底部:scrollView 充满了一些 UIImageViews,用户可以像往常一样滚动它。
但是用户也应该能够将一个 UIImageView (或它的副本)从 UIScrollView 拖到主视图,而且,这是我发现非常困难的,使用相同的拖动手势,因此我需要一种方法:
1)区分正常的水平滚动手势,这应该由 UIScrollView 以通常的方式处理和在图像视图上的拖动手势。
2)一旦确定了拖动手势,应该将触摸传播到超级视图,它将承载 UIImageView 的副本,并且使用相同的拖动手势继续在主视图上拖动,即使超出 UIScrollView 的范围。
请注意,我知道如果 UIScrollView 具有 userInteractionEnabled = NO,则触摸会传播到子视图,但是 1)我想将其传播到父视图而不是子视图,2)userInteractionEnabled 属性显然只有在初始手势为终止,而我需要使用单个拖动手势。
非常感谢您的帮助。