ダブルタップジェスチャーまたはその他の機能をコレクションビューに追加して、選択したセルに添付されたファイルをダウンロードします。TapGesture inside collectionView
私はダブルタップジェスチャー認識機能を使用しています。コレクションビュー内をダブルタップするとポイントが印刷されます。しかし、私がダブルタップをしようとするとすぐに、組み込みのジェスチャー認識が有効になり、didSelectItemAtが実行されます。
didSelectItemAtでコードをトリガーせずにダブルタップを追加する方法はありますか? viewControllerにボタンを追加せずにこの機能を実現する別の方法のアイデアですか?
これは私がコレクションビューを持っているのViewControllerののviewDidLoadで一緒に遊んでいたジェスチャーコードです:
let doubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didDoubleTap))
doubleTap.numberOfTapsRequired = 2
self.collectionView.addGestureRecognizer(doubleTap)
そして、私のダブルタップ機能:注意点としては
func didDoubleTap(gesture: UITapGestureRecognizer) {
let point: CGPoint = gesture.location(in: self.collectionView)
print(point)
if let selectedIndexPath: IndexPath = self.collectionView.indexPathForItem(at: point) {
let selectedCell: UICollectionViewCell = self.collectionView.cellForItem(at: selectedIndexPath as IndexPath)!
print("cell \(selectedCell) was double tapped")
}
}
を、私が試してみましたこれをセル自体に追加しましたが、動作させることができませんでした。セルはカスタムUICollectionViewCellであり、viewDidLoad関数がないので、ジェスチャを作成するには、コレクションビューを保持するviewControllerからジェスチャを設定するコードを呼び出すデリゲートを作成しなければならず、エラーが発生していました。
ありがとう、素敵な簡単な解決策。 – Pippo