У меня есть коллекция из 20 элементов, хранящихся в массиве изображений. Я удалить выбранные элементы с помощью этого кода:правильный способ удаления элементов в виде коллекции
self.collectionView.performBatchUpdates({
let selectedItems = self.collectionView.indexPathsForSelectedItems()!
self.picturesObject.deleteItemsAtIndexPaths(selectedItems)
self.collectionView.deleteItemsAtIndexPaths(selectedItems)
}, completion: {_ in})
это реализация deleteItemsAtIndexPaths picturesObject в:
func deleteItemsAtIndexPaths(indexPaths:[NSIndexPath]){
for indexPath in indexPaths{
pictures.removeAtIndex(indexPath.item)
}
}
Проблема я столкнулся, заключается в следующем. Каждый раз, когда выбранный элемент в виде коллекции удаляется, массив изображений становится меньше. Если я удалю первый элемент, чем массив изображений, то будет только 19 предметов. Если я чем пытаюсь удалить элемент номер 20 в представлении коллекции, индекс массива выходит за рамки, потому что массив изображений теперь всего 19 объектов большой, но я хотел удалить 20-й объект, хранящийся в indexpath.item.
Каков правильный способ удаления элементов в виде коллекции?
EDIT: методы вид /// коллекция
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
collectionView.allowsMultipleSelection = true
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return picturesObject.pictures.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ShopCell
cell.imageView.image = picturesObject.pictures[indexPath.item]
return cell
}
Привет, я думаю, вы удаляете изображение в своем массиве, но ваш делегат-делегат dataSource хранит 20 элементов в памяти. Можете ли вы вставить свои методы делегирования collectView? – Masterfego
Там вы идете. Я редактировал свой вопрос. Я думаю, что они являются источниками данных, у них нет других. – brumbrum