I have a \'master\' UITableView, in which I use different cells that are loaded from .xib\'s. Some of these cells themselves also have a UITableView.
For now I have
First Approach:
Create a subclass for child tableView and override intrinsicContentSize.
class MyOwnTableView: UITableView {
override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return self.contentSize
}
override var contentSize: CGSize {
didSet{
self.invalidateIntrinsicContentSize()
}
}
override func reloadData() {
super.reloadData()
self.invalidateIntrinsicContentSize()
}
}
In Interface builder change the class of your child tableView to MyOwnTableView (subclass UITableView).
Set automatic row height for both the parent and child table view.
tableView.estimatedRowHeight = 60.0;
tableView.rowHeight = UITableViewAutomaticDimension;
Second Approach: 1. Create a height constraint with any value for child tableView and conect an IBOutlet that sets the child tableView height. 2. Set the height constraint's constant to tableView.contentSize.height
self.tableViewHeight.constant = self.tableView.contentSize.height