私は画面を移動してテープで移動したいという小さな見方をしています。だから私はそれを移動する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
ジェスチャはお互いに競合していますか? 'pannerを呼んでください。 requireGestureRecognizerToFail(tapper) 'を実行して、タッパーがジェスチャーで最初のジブを取得するようにします。 – NRitH
これのほとんどはうまく見えますが、どうしてあなたのジェスチャー(あなたのメソッドを使って)をあなたのメソッドと同じ名前にしましたか?また、メソッドコードを投稿してください - デバッグに役立つかもしれません。 – dfd
panner.requireGestureRecognizerToFail(tapper)は何もしていないようです。メソッド名を変更しようとしますが、メソッドコードを含めるように投稿を編集します。 – cpatmulloy