2016-08-01 16 views
2

neu lade Ich versuchte, eine Zelle von collectionview auf didSelect Methode zu löschen.Wie man Abschnitt von Sammlungsansicht

Löschen der Daten funktioniert gut.

Aber ich bin immer dies:

Grund: ‚Ungültige Update: ungültige Anzahl von Abschnitten. Die Anzahl der Abschnitte in der Sammlungsansicht nach dem Update (1) muss gleich der Anzahl der Abschnitte in der Sammlungsansicht vor dem Update (2) sein, plus oder minus der Anzahl der Abschnitte eingefügt oder gelöscht (0 eingefügt, 0 gelöscht).

Dies ist die Zellfunktion löschen:

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)) 
} 

und numberOfSectionsInCollectionView func: Ich will

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 
     } 
} 

gerade Anzahl von Abschnitten neu zu laden. Was soll ich hinzufügen?

Antwort

1

Das Problem ist, dass Sie nur eine cell aus der section entfernen und das wird definitiv nicht funktionieren. Wenn Sie Ihre cell entfernt haben, müssen Sie auch Ihre manager.movie_List melden. Also, entferne die selectedIndex Daten aus dem Array und probiere es dann aus!

1

Sie müssen zuerst die Datenquelle aktualisieren, bevor Sie die Anrufe zu machen:

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

die das Objekt im Array so löschen (möglicherweise Wörterbuch) aus. Sie müssen möglicherweise nicht beide Aufrufe vornehmen, da jeder eine Animation des zu entfernenden Objekts bereitstellen würde.

So konnte man nur dies tun:

let indexSet = IndexSet(integer: indexPath.section) 
    self.collectionView.reloadSections(indexSet) 
Verwandte Themen