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
Post a Comment