UIPanGesture正在工作,但UITapGesture不工作在UIView

问题描述:

我有一个小的看法,我想要在屏幕上移动并且可以移动。所以,我想补充一个UIPanGestureRecognizer移动它,和UITapGestureRecognizer接收点击事件,像这样:UIPanGesture正在工作,但UITapGesture不工作在UIView

 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) 

我创建在同一个文件的操作

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()函数根本不被调用。

这有什么窍门吗?我究竟做错了什么?还有另外一种方法可以解决这个问题吗?

我使用的Xcode 8与SWIFT 3

+0

手势是否相互冲突?打电话给panner。 requireGestureRecognizerToFail(tapper)'确保tapper第一次获得手势。 – NRitH

+0

大部分这看起来不错,但为什么你的手势命名(通过“让”)与你的方法相同?另外,请发布方法代码 - 它可以帮助我们进行调试。 – dfd

+0

panner.requireGestureRecognizerToFail(tapper)似乎没有做任何事情。我会尝试更改方法名称,然后编辑帖子以包含方法代码。 – cpatmulloy

你必须设置为您识别与上查看其他手势识别工作。请使用UIGestureRecognizerDelegate方法

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

工作感谢你! – cpatmulloy