I have a View which has two labels and a Table View inside it. I want label 1 to always stay above my Table View and label 2, to be below the Table View. The problem is that the Table View needs to auto-size meaning either increase in height or decrease.
Right now I have a constraint saying the Table View's height is always equal to 85 and a @IBOutlet
to the height constraint where i'm able to change the constant.
I'm guessing I need to change the constant to the height of all the cells, but i'm not sure how.
You have to override updateViewConstraints()
in your UIViewController and set the height constraint's constant to tableView.contentSize.height:
override func updateViewConstraints() {
tableHeightConstraint.constant = tableView.contentSize.height
super.updateViewConstraints()
}
Then you have to make sure that Label2
has a top constraint that is greaterThanOrEqual
to the table view's bottom. And you also have to change the table view's height constraint's priority from Required
to High
to avoid conflicting constraints when the table view's contentHeight
is larger than the available height.