First you need set a subview height constraint of 0, then calculate data height (which you want to set in subview), and simply assign subview.heightConstraint.constant = data.height, then you need to set scrollView.contentsize which is based on subview height:
You have to calculate the needed height for your content including spacing.
Assign that value as the height of the row and refresh the table (or part in it with the row)
We can use auto layout, where we use a content view in scrollview, which can be pinned to the scrollview and the height and width constraints given equal to the main view. Then if we want the height to vary dynamically we can give height constraint a low priority compared to the others and hence the content view's height will increase based on its intrinsic size, because of its sub views.
First you need set a subview height constraint of
0
, then calculate data height (which you want to set in subview), and simply assignsubview.heightConstraint.constant = data.height
, then you need to setscrollView.contentsize
which is based on subview height:for me this this trick worked (Swift 4)
You have to calculate the needed height for your content including spacing. Assign that value as the height of the row and refresh the table (or part in it with the row)
We can use auto layout, where we use a content view in scrollview, which can be pinned to the scrollview and the height and width constraints given equal to the main view. Then if we want the height to vary dynamically we can give height constraint a low priority compared to the others and hence the content view's height will increase based on its intrinsic size, because of its sub views.
Reference Links:
1) https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithScrollViews.html#//apple_ref/doc/uid/TP40010853-CH24-SW1
2) https://www.youtube.com/watch?v=6J22gHORk2I