現在、indexPath1のコレクションビューでアイテムを削除する方法を作成しようとしています。これまで私はscrollviewを使って関数を作成するためにいくつかの助けを借りて、ユーザーが現在の画像メソッドによってどの画像をカウントしているかを数える方法を作成しました。私は今、ユーザーがどのセルにいるのかを数える方法が必要です。ここではより多くのあなたが望むように見えるものを、あなたの実際の質問よりもコメントに基づき、私のコード>現在のセルのindexPathを取得する方法
var currentImage = 0
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let x = floor(myCollectionView.contentOffset.x/view.frame.width)
if Int(x) != currentImage {
currentImage = Int(x)
//print(currentImage)
}
if currentImage > 0 {
for collectionCell in myCollectionView.visibleCells as [UICollectionViewCell] {
let indexPath = myCollectionView.indexPath(for: collectionCell as UICollectionViewCell)!
let indexPathOfLastItem = (indexPath?.item)! - 1
let indexPathOfItemToDelete = IndexPath(item: (indexPathOfLastItem), section: 0)
imageArray.remove(at: 0)
myCollectionView.deleteItems(at: [indexPathOfItemToDelete])
currentImage = 1
私の答えの下のコメントに基づいて、あなたの質問は全くあなたが求めるべきものではありません。本当の質問に質問を更新しないでください - 現在のセルのインデックスパスを取得して削除できるようにする方法あなたの質問をもっと明確にしてください。あなたがこの決定を下す必要がある場所を示してください。本当に望むものは、 'scrollViewDidScroll'メソッドで可視のセルを表示することとは何の関係もありません。 – rmaddy
hmm正直なところ、collectionview(1 item back)のアイテムを削除すると思ったのですが、contentsizeを幅で割ってアイテムのindexPathが必要で、ユーザがどちらのイメージを表示しているのかを知ることができます。 – Nivix
はい、インデックスパスが必要です。私のコメントをもう一度読んで、それに応じて質問を更新してください。これまではタイトルを更新しただけです。質問全体をやり直す必要があります。あなたの現在の質問の多くは、あなたが本当にやろうとしていることとは無関係です。 – rmaddy