我尝试在collectionview
方法上从didSelect
删除一个单元格。
删除数据效果很好。
但我得到了这个:
原因:'无效更新:无效的部分数量。的数量 更新(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
}
}
我只是想重新加载一些部分。我应该添加什么?
答案 0 :(得分:6)
在拨打电话之前,您需要先更新数据源:
collectionView.deleteItemsAtIndexPaths([indexPath])
collectionView.reloadSections(NSIndexSet(index: indexPath.section))
首先删除数据源模型中的对象(数组,字典等)。
然后你可以这样做:
let indexSet = IndexSet(integer: indexPath.section)
collectionView.reloadSections(indexSet)
答案 1 :(得分:1)
问题是您只是从cell
删除了section
,这肯定无效。
删除cell
后,您还需要通知manager.movie_List
array
。因此,从数组中删除selectedIndex数据然后尝试一下!