ฉันมีมุมมองตารางภายในมุมมองเลื่อนและต้องคำนวณความสูงของ tableView และปรับขนาดตามความเหมาะสม นี่คือขั้นตอนที่ฉันได้ทำ:
0) เพิ่ม UIView ให้กับ scrollView ของคุณ (อาจจะทำงานได้โดยไม่มีขั้นตอนนี้ แต่ฉันทำเพื่อหลีกเลี่ยงความขัดแย้งที่อาจเกิดขึ้นได้) - นี่จะเป็นมุมมอง containr สำหรับมุมมองตารางของคุณ หากคุณทำตามขั้นตอนนี้ให้ตั้งค่าเส้นขอบมุมมองไปทางขวาของมุมมองตาราง
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) กำหนดคลาสของมุมมองตารางใน Storyboard เป็น 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
}
หวังว่านี่จะช่วยได้