I have cells with images on a viewController, I like to give the users an option to select one of the image for their title label. How do I make them select only one image, that is if they select another image I want to deselect the previous image they selected. 
This is what I did:
 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
            let cell = collectionView.cellForItem(at: indexPath)
            cell?.layer.borderWidth = 5.0
            cell?.layer.borderColor = UIColor.black.cgColor
            collectionView.allowsMultipleSelection = false
        }
but it is allowing me to select all cells not just one cell which I like.
First, move  collectionView.allowsMultipleSelection = false to viewDidLoad
Secondly, I don't think you really have a problem with multiple selection. Rather that you don't clear the effects you put on the cell when selecting it. What you can do is to clear that i didDeselect
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let cell = collectionView.cellForItem(at: indexPath)
        cell?.layer.borderWidth = 5.0
        cell?.layer.borderColor = UIColor.black.cgColor
    }
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
        let cell = collectionView.cellForItem(at: indexPath)
        cell?.layer.borderWidth = 0
        cell?.layer.borderColor = UIColor.white.cgColor
    }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With