私は、自分のコレクションビューのダブルタップジェスチャーを作成しました。コレクションビューのセルをダブルタップすると、セルへのユーザーの操作が無効になります。これにより、プロセスが実行されている間にそのセルをタップすることができなくなります。しかし、私はまだプロセスを再び実行するセルをダブルタップすることができます。私はまだコレクションの他のセルのためにダブルタップを使用したい、私はちょうどプロセスを実行しているセルのためにそれを無効にしたい。プロセスが終了すると、ユーザーのやりとりが有効になり、うまくいけばダブルタップもできます。isUserInteractionEnabled = falseは、ダブルタップジェスチャーを許可します。
だから、これは私がコレクションビューを保持するビューコントローラののviewDidLoadで、ダブルタップを定義する方法である:
// add gesture recogniser
let doubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didDoubleTap))
doubleTap.numberOfTapsRequired = 2
doubleTap.delaysTouchesBegan = true
self.collectionView.addGestureRecognizer(doubleTap)
、プロセスの状態に応じて必要なときに私はいつものようuserInteraction切り替えています。
cell.isUserInteractionEnabled = false
cell.isUserInteractionEnabled = true
私がコレクションビューのダブルタップジェスチャーを無効にしているかのように、これをどう接しているのかわかりません。他のセルをダブルタップできません。そして、ダブルタップは、コレクションビューではなくセルでのみ利用できるように、設定する方法もわかりません。
ありがとう、私は簡単なオプションをまっすぐに行って、ifステートメントを使用しました。これは、最初のダブルタップが行われたときに表示されていたセルのタップジェスチャを無効にしているようです。デリゲートメソッドを見ていない。 – Pippo
実際には動作しますが、私はちょうど私の条件文句を持っていました。 – Pippo
素晴らしい!それを聞いてうれしい。 –