У меня было табличное представление внутри прокрутки, и я должен был вычислить высоту 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) УстановитьheightConstraint для представления вашей таблицы
4) перетащите IBoutlet вашей таблицы в ViewController
5) перетащите IBoutlet ограничения высоты вашей таблицы в ViewController
6)добавьте этот метод в свой ViewController:
override func viewWillLayoutSubviews() {
super.updateViewConstraints()
self.yourTableViewsHeightConstraint?.constant = self.yourTableView.intrinsicContentSize.height
}
Надеюсь, это поможет