CollectionView Cell size only updating after Scroll

In my collection view I have an image with some text below. I have a height constraint for the image view so the image aspect ratio can be adjusted (cells are the width of the screen). I set the constraint constant in cellForItemAt. The cell heights only resize correctly after I scroll.

CollectionViewController

    override func viewDidLoad(_ animated: Bool) {
        super.viewDidLoad(animated)

        let layout = collectionView.collectionViewLayout
        if let flowLayout = layout as? UICollectionViewFlowLayout {
            flowLayout.estimatedItemSize = CGSize(width: collectionView.widestCellWidth, height: 800)

        }

    }
    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! selectCell

        cell.setupView()

// Image resolution is already downloaded 
        let gsReference = storage.reference(forURL: thumbnail.storageLocation)
        cell.imageView.sd_setImage(with: gsReference, placeholderImage: nil)

        cell.layoutIfNeeded()
        cell.layoutSubviews()

        return cell
    }

selectCell.swift

    override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize {

        var targetSize = targetSize
        targetSize.height = CGFloat.greatestFiniteMagnitude

        let size = super.systemLayoutSizeFitting(targetSize, withHorizontalFittingPriority: .required, verticalFittingPriority: .fittingSizeLevel)

        return size

    }
    func setupView() {

// Changing the labels size the cell correctly when first loaded
            titleLbl.text = ""
            descriptionLbl.text = ""

            

            let imageAspectRatio = CGFloat(metadata.thumbnail.width) / CGFloat(metadata.thumbnail.height)

            let imageViewHeight = containerView.frame.width / imageAspectRatio
            imageViewHeightConstraint.constant = imageViewHeight

            self.contentView.setNeedsLayout()
            self.contentView.layoutIfNeeded()

    } 
CollectionView Cell size only updating after Scroll
 
 
Q