У меня было табличное представление в представлении прокрутки и я должен был вычислить высоту tableView и соответственно изменить его размер. Вот шаги, которые я предпринял:
0) добавьте UIView в scrollView (возможно, будет работать без этого шага, но я сделал это, чтобы избежать возможных конфликтов) - это будет представление контейнеров для вашего табличного представления. Если вы сделаете этот шаг, то установите границы представлений прямо на те же, что и у таблицы.
1) создать подкласс UITableView:
class IntrinsicTableView: UITableView {
override var contentSize:CGSize {
didSet {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return CGSize(width: UIViewNoIntrinsicMetric, height: contentSize.height)
}
}
2) установить класс табличного представления в раскадровке на IntrinsicTableView: снимок экрана: http://joxi.ru/a2XEENpsyBWq0A
3) Установите высоту ограничения для вашего вида таблицы
4) перетащите IBoutlet вашей таблицы на ваш ViewController
5) перетащите IBoutlet ограничения высоты вашей таблицы на ваш ViewController
6) добавьте этот метод в ваш ViewController:
override func viewWillLayoutSubviews() {
super.updateViewConstraints()
self.yourTableViewsHeightConstraint?.constant = self.yourTableView.intrinsicContentSize.height
}
Надеюсь это поможет