ios - UICollectionViewLayout item spacing with Swift -


i tried convert this objective-c answer swift, crash on line:

var previouslayoutattributes: uicollectionviewlayoutattributes = attributestoreturn[i - 1] 

this function:

override func layoutattributesforelementsinrect(rect: cgrect) -> [anyobject]? {      var attributestoreturn:[uicollectionviewlayoutattributes] = super.layoutattributesforelementsinrect(rect) as! [uicollectionviewlayoutattributes]      var = 0 ; < attributestoreturn.count ; i++     {         var currentlayoutattributes: uicollectionviewlayoutattributes = attributestoreturn[i]         var previouslayoutattributes: uicollectionviewlayoutattributes = attributestoreturn[i - 1]         var maximumspacing: cgfloat = 50         var origin = cgrectgetmaxx(previouslayoutattributes.frame)         if origin + maximumspacing + currentlayoutattributes.frame.size.width < self.collectionviewcontentsize().width         {             var frame: cgrect = currentlayoutattributes.frame             frame.origin.x = origin + maximumspacing             currentlayoutattributes.frame = frame         }     }      return attributestoreturn  } 

i guess it's because @ first there no - 1 object.. how else can that?

you rewrite code checks negative index.

let origin: cgfloat if - 1 >= 0 {     let previouslayoutattributes = attributestoreturn[i - 1]     origin = previouslayoutattributes.frame.maxx } else {     origin = 0 } 

Comments