ios - Pan Gesture 正在工作,但 ONTapGesture 不在 UIView 上工作

标签 ios swift uiview uigesturerecognizer uitapgesturerecognizer

我有一个小 View ,我想在屏幕上移动并可点击。所以我添加了一个 UIPanGestureRecognizer 来移动它,并添加了一个 UITapGestureRecognizer 来接收点击事件,如下所示:

        let panner = UIPanGestureRecognizer(target: self, action: #selector(panDidFire(panner:)))
        playerViewController.view.addGestureRecognizer(panner)

        let tapper = UITapGestureRecognizer(target: self, action: #selector(viewTapped(tapper:)))
        playerViewController.view.addGestureRecognizer(tapper)

我在同一个文件中创建 Action

    func viewTapped(tapper: UITapGestureRecognizer){
         fadeInButtons()
    }
    func panDidFire(panner: UIPanGestureRecognizer) {
        let offset = panner.translation(in: view)
        panner.setTranslation(CGPoint.zero, in: view)
        var center = playerViewController.view.center
        center.x += offset.x
        center.y += offset.y
        playerViewController.view.center = center
    }

当用户平移时调用 panDidFire() 函数,但根本不调用 viewTapped() 函数。

这有什么技巧吗?我究竟做错了什么?还有另一种方法吗?

我正在使用带有 swift 3 的 Xcode 8

最佳答案

您必须设置您的识别器才能与 View 上的其他手势识别器一起工作。请使用 UIGestureRecognizerDelegate 方法

gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool
{
   return true
}

关于ios - Pan Gesture 正在工作,但 ONTapGesture 不在 UIView 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173440/

相关文章:

ios - 任意取整

ios - 我应该什么时候创建新队列?

ios - 使用 Core Graphics for iOS 绘制空心圆

xcode - 如何在 NSWindow 上只显示工具栏

ios - 如何让 CollectionView 仅在下半部分加载图像,同时仍允许在顶部加载静态内容

ios - 在所有 View Controller 中隐藏状态栏 - IOS

iphone - 'self.window addSubview : view ' 中的 self 有什么用?

iphone - 仅带 .@2x 的通用应用程序

ios - 使用自动布局舍入 View ?

iphone - 将 NIB 文件加载到 UIView 时遇到问题