UICollectionView 选择和取消选择

Sen*_*ner 2 ios uicollectionview swift

我有 UICollectionView 2 行 10+ 单元格。默认取消选中。当我点击它时被选中,但当我再次点击时不会取消选择。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print(indexPath)


   let cell = collectionView.cellForItem(at: indexPath)


    let collectionActive: UIImageView = {
        let image=UIImageView(image: #imageLiteral(resourceName: "collectionActive"))
        image.contentMode = .scaleAspectFill
        return image
    }()

    let collectionInactive: UIImageView = {
        let image=UIImageView(image: #imageLiteral(resourceName: "collectionInactive"))
        image.contentMode = .scaleAspectFill
        return image
    }()


    if cell?.isSelected == true {
        cell?.backgroundView = collectionActive
    }else{
        cell?.backgroundView = collectionInactive
    }

}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Fer*_*yan 8

在 viewDidLoad()

collectionView.allowsMultipleSelection = true;
Run Code Online (Sandbox Code Playgroud)

后记我实现了这些方法

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    let cell = collectionView.cellForItemAtIndexPath(indexPath) as! MyCell
    cell.toggleSelected()
}

func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
    let cell = collectionView.cellForItemAtIndexPath(indexPath) as! MyCell
    cell.toggleSelected()
}
Run Code Online (Sandbox Code Playgroud)

终于到了我的班级

class MyCell : UICollectionViewCell {

    func toggleSelected ()
    {
        if (selected){
            backgroundColor = UIColor.redColor()
        }else {
            backgroundColor = UIColor.whiteColor()
        }
    }

}
Run Code Online (Sandbox Code Playgroud)