1

私は画面を移動してテープで移動したいという小さな見方をしています。だから私はそれを移動する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()関数はまったく呼び出されません。

このトリックはありますか?私は間違って何をしていますか?これについて別の方法がありますか?

私はあなたがビュー上の他のジェスチャー認識で動作するようにあなたの認識装置に設定する必要があり、迅速な3

+0

ジェスチャはお互いに競合していますか? 'pannerを呼んでください。 requireGestureRecognizerToFail(tapper) 'を実行して、タッパーがジェスチャーで最初のジブを取得するようにします。 – NRitH

+0

これのほとんどはうまく見えますが、どうしてあなたのジェスチャー(あなたのメソッドを使って)をあなたのメソッドと同じ名前にしましたか?また、メソッドコードを投稿してください - デバッグに役立つかもしれません。 – dfd

+0

panner.requireGestureRecognizerToFail(tapper)は何もしていないようです。メソッド名を変更しようとしますが、メソッドコードを含めるように投稿を編集します。 – cpatmulloy

答えて

1

とXcodeの8を使用しています。 UIGestureRecognizerDelegateのメソッドを使用してください

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

ありがとうございました! – cpatmulloy

関連する問題