Swift 3:UISwipeGestureRecognizer适用于View但不适用于ViewContainer

时间:2017-08-27 18:59:36

标签: ios swift3 storyboard xcode8 uigesturerecognizer

我对使用Swift 3和Xcode 8.3.3的App开发(虽然有编码背景)很陌生。我找到了一些我不太了解的Objective-C答案,并且不知道如何在Swift中实现它。

这就是我所拥有的:

  1. Document Outline, Storyboard & Connections
  2. the OnboardingViewController Class
  3. 它的作用

    swipeOnView方法就像一个魅力,我知道这是正确的,因为“2.文档大纲”,因为“容器视图”是视图的子项,并且没有收到手势。

    但是:一旦“容器视图”覆盖(或者应该 - 由于测试它的高度的一半)整个屏幕,似乎它阻止了UIView接收手势 - >这两种方法都变得无用 - >再次......是正确的,我得到了它。

    我想要它做什么

    我想让swipeOnContainerView方法正常工作但是我无法弄清楚如何告诉控制器只“监听”容器的视图手势并忽略“父”UIView。

1 个答案:

答案 0 :(得分:0)

我能够自己解决这个问题,以下是:

步骤1:为每个GestureRecognizer添加一个Outlet,即@IBOutlet var swipeLeftGestureRecognizer:UISwipeGestureRecognizer!

第2步:在viewDidLoad()中为每个Outlet添加一个委托,即swipeLeftGestureRecognizer.delegate = self

步骤3:将func gestureRecognizer的返回值(_ gestureRecognizer:UIGestureRecognizer,shouldRecognizeSimultaneouslyWith otherGestureRecognizer:UIGestureRecognizer)更改为true

步骤4:将Referencing Outlet连接到有问题的UIView / SubView

步骤5:将IBActions添加到每个GestureRecognizer

完成