使用 UISwipeGestureRecognizer 向右滑动时出现问题 (Swift 3.0)

Problems swiping right with UISwipeGestureRecognizer (Swift 3.0)

看完这个快速 demo 之后,我设置了非常相似的 swipeLeftswipeRight 方法。我已确保我添加到场景中的两个手势识别器分别设置为 "left" 和 "right",并验证我的 @IBActions 已链接到正确的识别器。

出于某种原因,向左滑动识别器正常工作但向右滑动识别器不起作用(这更奇怪,因为我正在阅读的大部分内容都讨论了如何识别器方向默认为右)。我已经在 iPhone 8 和模拟器 (SE + 10) 上对此进行了测试。

当我使用术语 "left" 和 "right" 时,我假设它们指的是滑动的方向(例如,左 = 从右侧开始并向左滑动手指) .

我的方法如下:

@IBAction func swipeLeft(_ sender: UISwipeGestureRecognizer) {
    print("swiped left")
}

@IBAction func swipeRight(_ sender: UISwipeGestureRecognizer) {
    print("swipe right")
}

更新

IBActions(用于连接到视图控制器)左侧的两个气泡都已填充。当我单击它们时(试图获取屏幕截图,但它消失了)它们都显示它们已连接(分别):

Main.storyboard -- Swipe Gesture Recognizer (R)
Main.storyboard -- Swipe Gesture Recognizer (L)

但是,当我右键单击识别器时,它们的连接存在差异。 它们都显示各自方法的已发送操作,但 (L) 有 Referencing Outlet Collections 而 (R) 没有。

连接后,一切正常。 不知道为什么它最初没有连接,但这样就解决了。感谢大家的帮助。

不知道你拖到应该听手势的view上了没有。检查 links 窗格以查看它们之间的差异以及 link 向视图的正确手势之间的差异 也许第一个手势识别器禁用了第二个,尝试禁用第一个,看看是否有帮助。你应该将它们设置为将触摸转发给其他识别器

编辑:如您所说,您应该添加一个到引用网点的连接 很高兴能帮到你(我以前遇到过这个问题)祝你好运!