2017-03-28 13 views
0

現在、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 
+0

私の答えの下のコメントに基づいて、あなたの質問は全くあなたが求めるべきものではありません。本当の質問に質問を更新しないでください - 現在のセルのインデックスパスを取得して削除できるようにする方法あなたの質問をもっと明確にしてください。あなたがこの決定を下す必要がある場所を示してください。本当に望むものは、 'scrollViewDidScroll'メソッドで可視のセルを表示することとは何の関係もありません。 – rmaddy

+0

hmm正直なところ、collectionview(1 item back)のアイテムを削除すると思ったのですが、contentsizeを幅で割ってアイテムのindexPathが必要で、ユーザがどちらのイメージを表示しているのかを知ることができます。 – Nivix

+0

はい、インデックスパスが必要です。私のコメントをもう一度読んで、それに応じて質問を更新してください。これまではタイトルを更新しただけです。質問全体をやり直す必要があります。あなたの現在の質問の多くは、あなたが本当にやろうとしていることとは無関係です。 – rmaddy

答えて

2

あなたは、セルを削除するには、そのパスを使用できるように最初の可視セルのインデックスのパスを取得することです。

let visibleCells = myCollectionView.visibleCells 
if let firstCell = visibleCells.first() { 
    if let indexPath = myCollectionView.indexPath(for: collectionCell as UICollectionViewCell) { 
     // use indexPath to delete the cell 
    } 
} 

これのどれも使用されていないか、scrollViewDidScrollデリゲートメソッドで行う必要があります。

+0

okありがとうございますが、私はまだこのようなものがあります:http://imgur.com/a/6yI3p – Nivix

+0

ああ、ありがとう、どうすればこの問題を避け、目に見えるセルのインデックスパスのみを印刷できますか? – Nivix

+1

何も避けてください。あなたの目標は明確ではありません。あなたのコードは現在、あなたがそれを求めていることをしています - ユーザがコレクションビューをスクロールするときにすべての可視セルを印刷します。 – rmaddy

関連する問題