2016-06-16 6 views
-2

Lassen Sie eine UICollectionView mit mehreren Zellen implementiert werden.* Sehr einfach * Ergebnis des Aufrufs von "==" ist nicht verwendet

Wenn Sie auf eine Zelle klicken, möchte ich den Wert in meinem selectedArray in true ändern.

Hier ist mein Code:

var selectedArray = [Bool](count:201, repeatedValue:false) 

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    let cell = collectionView.cellForItemAtIndexPath(indexPath) 
    if cell?.selected == true { 
     selectedArray[indexPath.row] == true 
     print("\(selectedArray[indexPath.row])") 
    } 
} 

Der Ausgang ist falsch für jede Zelle Ich klicke, also weiß ich etwas nicht richtig verbunden ist, aber ich es einfach nicht sehen.

+0

Ein NSMutableIndexSet ist eine geeignetere Datenstruktur zum Verfolgen der Auswahl. – Paulw11

Antwort

0

selectedArray[indexPath.row] == true - braucht ersetzen ‚==‘ auf ‚=‘

+0

hhmm nahm ich die if-Zelle? .selected Linie und ich bekomme immer noch die gleichen Ergebnisse @Savchenko – Cameron

+0

@Cameron, seltsam .. Was machst du auch mit ausgewähltenArray? –

+0

noch nichts, ich habe nur die zwei Zeilen in meinem func: selectedArray [indexPath.row] == wahr und print ("\ (selectedArray [indexPath.row])") – Cameron

2

Sie müssen sehen nicht überprüfen, ob die Zelle ausgewählt ist. Da Sie didSelectItemAtIndexPath aufrufen, müssen Sie dies nicht überprüfen. Führen Sie einfach Folgendes aus:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    selectedArray[indexPath.row] = true 
} 
Verwandte Themen