UITableView的动态高度

时间:2017-06-30 18:16:03

标签: ios uitableview autolayout

如何使用约束获取UITableView的动态高度。它将根据行数增加UITableView高度而不在表中添加Scrollbar。 我在UIViewController中添加TableView时遇到问题,TableView的高度不应该是静态修复的。

1 个答案:

答案 0 :(得分:4)

我发现这样做最简洁的方法是使用表格视图的contentSize作为intrinsicContentSize

你的tableview必须是一个实际的子类,你可以像这样覆盖contentSizeintrinsicContentSize(请注意,contentSize只有一个添加的观察者,它没有真正被覆盖):

override var contentSize: CGSize {
        didSet {
            self.invalidateIntrinsicContentSize()
        }
    }

override var intrinsicContentSize: CGSize {
        return contentSize
    }

现在,当您设置表格视图时,请确保将其内容抗压性和内容拥抱优先级设置为所需,然后它应根据其内在内容大小自动在视图中自行调整大小。