I've set up a UITableViewCell
with UITableViewAutomaticDimension
The TableViewCell has a UICollectionView embedded in it which is not scrollable but can have a variable height based on the content of the collectionview.
Right now what I've tried is the render the cell and assign the height constraint of the collectionview to a variable collectionViewHeightConstraint
and then update the height once the collectionview is rendered in the layoutSubviews method
override func layoutSubviews() {
super.layoutSubviews()
self.collectionViewHeightConstraint?.constant = self.collectionView!.contentSize.height
}
This is what the collectionview constraints look like (using cartography) :
self.contentView.addSubview(self.collectionview)
self.contentView.addSubview(self.holdingView)
constrain(self.holdingView!, self.contentView) {
holderView, container in
holderView.top == container.top
holderView.left == container.left
holderView.right == container.right
holderView.bottom == container.bottom
}
constrain(self.collectionView!, self.holdingView) {
collectionView, containerView in
collectionView.top == containerView.top
collectionView.left == containerView.left
collectionView.right == containerView.right
collectionViewHeightConstraint = collectionView.height == collectionViewHeight
containerView.bottom == collectionView.bottom
}
But that does not seem to update the cell height.
Is there any way to update the same?
Edit
This is not a duplicate question as suggested by some people and the explanation of why is in the comments below.