Miałem widok tabeli w widoku przewijania i musiałem obliczyć wysokość tableView i odpowiednio zmienić jego rozmiar. Oto kroki, które podjąłem:
0) dodaj UIView do swojego scrollView (prawdopodobnie będzie działać bez tego kroku, ale zrobiłem to, aby uniknąć ewentualnych konfliktów) - będzie to widok kontenera dla twojego widoku tabeli. Jeśli zrobisz ten krok, ustaw granice widoków bezpośrednio na widoki tabeli.
1) utwórz podklasę 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) ustaw klasę widoku tabeli w Storyboard na IntrinsicTableView: zrzut ekranu: http://joxi.ru/a2XEENpsyBWq0A
3) Ustaw heightConstraint na swój widok tabeli
4) przeciągnij IBoutlet swojej tabeli do kontrolera ViewController
5) przeciągnij IBoutlet ograniczenia wysokości tabeli do swojego ViewController
6) Dodaj tę metodę do swojego ViewController:
override func viewWillLayoutSubviews() {
super.updateViewConstraints()
self.yourTableViewsHeightConstraint?.constant = self.yourTableView.intrinsicContentSize.height
}
Mam nadzieję że to pomoże