识别视图中的滑动手势,而不是在子视图中

时间:2015-05-13 13:32:55

标签: ios swift uiview uigesturerecognizer

我在View Controller的视图中添加了一个子视图。该子视图是QLPreviewController的视图。

我想要实现的是识别父视图中的子视图中的滑动手势,即视图控制器的视图。最后,我希望能够在视图上向左/向右滑动以加载下一个文档进行预览。

我了解热门测试,并了解到只需将手势识别器附加到父视图,就无法识别,因为子视图将是" -test"图。

现在识别这些手势的最佳(或最简单)方法是什么? 注意:我没有设法将手势识别器附加到子视图,这似乎不起作用。

*更新*

为了更清楚 - 这是我的ViewController中的代码。 vContent只是我的ViewController中的一个视图,我在其中添加了QLPreviewController的视图:

let pvVc = QLPreviewController()
pvVc.dataSource = self

vContent.addSubview(pvVc.view)

我尝试将滑动识别器添加到vContent和pvVc.view中。在这两种情况下都没有发生任何事件。

let sgrLeft: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action:Selector("handleSwipe:"))
sgrLeft.direction = UISwipeGestureRecognizerDirection.Left
sgrLeft.delegate = self

在其他一些视图中,代码工作正常。

任何提示都表示赞赏! 谢谢 淡

2 个答案:

答案 0 :(得分:2)

那么,响应者链,未知动物......; - )

您可以继承超级视图并覆盖-hitTest:forEvent:

  

您很少需要自己调用此方法,但您可以覆盖它以隐藏子视图中的触摸事件。

答案 1 :(得分:1)

手势识别器获得第一次识别触摸的机会,因此即使子视图也是hitTest视图。附加在superView上的gestureRecognizer可以识别触摸事件。