我在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
在其他一些视图中,代码工作正常。
任何提示都表示赞赏! 谢谢 淡
答案 0 :(得分:2)
那么,响应者链,未知动物......; - )
您可以继承超级视图并覆盖-hitTest:forEvent:
。
您很少需要自己调用此方法,但您可以覆盖它以隐藏子视图中的触摸事件。
答案 1 :(得分:1)
手势识别器获得第一次识别触摸的机会,因此即使子视图也是hitTest视图。附加在superView上的gestureRecognizer可以识别触摸事件。