2016-08-01 2 views
2

didSelectメソッドのcollectionviewからセルを削除しようとしました。collectionviewからセクションをリロードする方法

データを削除するとうまくいきます。

しかし、私はこれを取得しています:

理由:「無効なアップデート:セクションの数が無効です。更新(1)の後のコレクションビューに含まれる セクションの数は、更新(2)の前にコレクションビュー に含まれるセクションの数に、 を挿入または削除した数( )に等しい でなければなりません0が挿入され、0が削除されました)。 '

func deleteMovie(cell: MoiveCollectionViewCell) { 
var indexPath: NSIndexPath = self.collectionView!.indexPathForCell(cell)! 
// remove and reload data 
self.collectionView.deleteItemsAtIndexPaths([indexPath]) 
self.collectionView.reloadSections(NSIndexSet(index: indexPath.section)) 
} 

numberOfSectionsInCollectionView FUNC::私はちょうどセクションの数をリロードしたい

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 
    //number_per_section = 3 
    if manager.movie_List.count % number_per_section == 0 
    { 
     return manager.movie_List.count/number_per_section 
    } 
    else { 
     return manager.movie_List.count/number_per_section + 1 
     } 
} 

この

は、細胞の機能を削除しています。私は何を追加すべきですか?

答えて

1

問題はsectionからcellを削除しているだけで、それは間違いなく機能しません。

cellを削除した後は、manager.movie_Listarrayに通知する必要があります。したがって、配列からselectedIndexデータを削除し、それを試してみてください!その最初のあなたの配列(おそらく辞書)でオブジェクトを削除

self.collectionView.deleteItemsAtIndexPaths([indexPath]) 
    self.collectionView.reloadSections(NSIndexSet(index: indexPath.section)) 

1

あなたはあなたが呼び出しを行う前に、最初のデータソースを更新する必要があります。削除されるアイテムのアニメーションをそれぞれ提供するので、両方の呼び出しを行う必要はありません。

だから、あなただけのこの操作を行うことができます:

let indexSet = IndexSet(integer: indexPath.section) 
    self.collectionView.reloadSections(indexSet) 
関連する問題