gpt4 book ai didi

ios - UITableView 高度等于 contentSize 高度

转载 作者:行者123 更新时间:2023-11-28 14:18:04 26 4
gpt4 key购买 nike

我有一个 ScrollView 和内部 if couple 标签和一个 tableView。我希望该 tableView 由外部 scrollView 而不是 tableView 的 scrollView 滚动,所以我所做的是将 tableView 高度的约束设置为等于 contentSize 高度。但是我有这个问题,只有当推送动画完成时它的大小才正确(我猜 viewDidLayoutSubviews 被调用)

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tableHeightConstraint?.constant = tableViewController.tableView.contentSize.height
}

Video Link

最佳答案

内容大小将通过 ScrollView 逻辑进行刷新。所以布局 subview 肯定是不够的。我有一种情况,我根据它的内容调整 TableView 的大小。我所做的是使用固有大小(这是 Storyboard 中的压缩优先级)。我将 TableView 子类化并覆盖这些:

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

override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return CGSize(width: UIViewNoIntrinsicMetric, height: contentSize.height)
}

剩下的可以在约束条件下完成。我的情况是我不会进一步调整它的大小,然后它是 super View ,但你做你必须做的。这里仍然要小心一点:如果这不受限制,您会破坏 TableView 出队功能,并且所有单元格可能会立即加载,这可能会消耗内存和 CPU 负载。如果可能的话,我会避免这种情况。如果没有,下一个最好的办法是在 ScrollView 上使用垂直堆栈 View ,这应该会产生您似乎期望的相同结果。

关于ios - UITableView 高度等于 contentSize 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52056119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com