前提・実現したいこと
SwiftでCollectionViewのセルの通し番号を取得したいです.
現状
現在,
swift
1let indexPath = self.collectionView.indexPathForItem(at: tapPoint)
でタップしたセルのindexPathを取得しています.
セルは,全部で7個,0〜6のPathが割り振られて生成されています.
これはprintで確認できました.
しかし,画面には最大6個のセルが表示されその時点では全てのindexPathの取得が正しい値なのですが,スクロールして7個目のセルをタップして取得すると4になります.
確認してみたところ,スクロールして上に消えていった2個のPathが消え,最初2だったセルから0のPathが与えられていました.
スクロールしてもセル全体の通し番号を取得するにはどのようにしたら良いのでしょうか?
よろしくおねがいします.
実行場所とtapPointについて
実行は,長押しがされると呼ばれる関数内にて
swift
1@objc func longPress(_ sender: UILongPressGestureRecognizer){ 2 if sender.state == .began { 3 tapPoint = sender.location(in: self.view) 4 let indexPath = self.collectionView.indexPathForItem(at: tapPoint) 5}
のように行っています.
tapPointは,長押しがされた座標のことで,今回は上記のように(in: self.view)にしていたため問題がおこっていました.
そのコードはどこで実行しているのでしょうか?tapPointは何の座標なのでしょうか?
拙い質問で申し訳ありません.解決しましたが,回答を付け加えます.ご協力ありがとうございました.
回答2件
あなたの回答
tips
プレビュー