If you want to zoom a little bit you can use:
 override func viewDidLoad()
    {
        super.viewDidLoad()
        collectionView.allowsSelection = true
    }
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
    {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
        if cell.isSelected == true
        {
            cell.transform = CGAffineTransform(scaleX: 1.2, y: 2)
        }
        else
        {
            cell.transform = .identity
        }
        return cell
    }
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    {
        let cell = collectionView.cellForItem(at: indexPath)
        cell?.isSelected = true
        UIView.animate(withDuration: 0.2, delay: 0, usingSpringWithDamping: 5, initialSpringVelocity: 0, options: [], animations:
        {
            cell?.transform = CGAffineTransform(scaleX: 1.2, y: 2)
        })
    }
There is another alternative were you can add a subview to the cell where the bottom constraint of it is equal to 16 (for example), and on selection you can change the border color of that view.