Swift: UICollectionViewCell didSelectItemAtIndexPath Change backgroundColor

ios, swift, uicollectionview, uicollectionviewcell

Solution

You can use this method for that:

    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath){

    var cell : UICollectionViewCell = collectionView.cellForItemAtIndexPath(indexPath)!
    cell.backgroundColor = UIColor.magentaColor()
}

Problem

I'm easily able to change the background color of a cell in the `CellForItemAtIndexPath` method ``` func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { cell.backgroundColor = UIColor.blackColor() } ``` However, when I attempt to change the color in the `DidSelectItemAtIndexPath` it does not work. ``` func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { let cell: ButtonCollectionCell = collectionView.dequeueReusableCellWithReuseIdentifier("ButtonCell", forIndexPath: indexPath) as! ButtonCollectionCell { cell.backgroundColor = UIColor.blackColor() ``` } Also I read somewhere that using `didSelectItemAtIndexPath` won't work because once the collection view begins scrolling the color will change back What is the fix in Swift? Thank you so much for your help

Original source