2016-05-25 29 views
0

Ich möchte die Breite jeder 3. Zelle in einer Sammlungsansicht ändern. Derzeit bin ich Einstellung der Breite und Höhe der Elemente wie folgt aus:Ändern der Breite jeder 3. Zelle in der Sammlungsansicht

func collectionView(collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    let width = UIScreen.mainScreen().bounds.size.width 
    return CGSize(width: width/2, height: width/2) 
} 

Wie kann ich jedes dritte Element in der Sammlung Ansicht auswählen und das Element volle Breite machen? In css wäre es Element: nth-child (3n), also etwas Ähnliches.

Antwort

5

Sieht aus wie eine gute Verwendung des modulus Operators! (Oder wirklich, %)

let offset = 0 //modify to change where it starts 
return (indexPath.row % 3 + offset) == 0 ? fullSize : normalSize 
+0

War gerade im Begriff, mit einer Modulantwort zu antworten. Aber nur um anderen zu helfen, die das in Zukunft sehen, gibt er hier eine 'CGSize' zurück und keine Breite, daher solltest du deinen Code vielleicht aktualisieren. – NSGangster

+0

Danke @NSGangster Ich wollte gerade nach einer CGSize-Antwort fragen. –

+0

Der Code soll mit dem, was Sie verwenden möchten, subsummiert werden - ich kenne die Parameter für "normale" vs. volle Breite, aktualisierte Platzhalter nicht. – sschale

Verwandte Themen