gpt4 book ai didi

ios - 自动调整表格 View

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:14 26 4
gpt4 key购买 nike

首先,这不是关于如何自动调整 tableview 内单元格大小的问题,而是如何自动调整整个 tableview 大小的问题。

所以我有一个 scrollview,它有一个 tableview 和 2 个其他 View 作为它的 subview 。 tableview 的单元格已经自动调整大小,同样这个问题与单个单元格无关。但是,tableview 根本不会调整大小。

我做了什么:1) 设置 tableview 以具有顶部、底部、前导和尾随约束2)将单元格设置为启用自动布局3) * 我不知道构建时的单元格大小4) 我在 tableview 上禁用了滚动模式

长话短说,我怎样才能让 tableview 自行调整大小?

编辑

单元格包含一个标签,该标签可以包含多行文本,因此使用自动布局的单元格应确定表格 View 的高度。

下图显示了 View 的设置方式:

Quinchol Quinchol 2

如您所见,tableview 只是 View 的一小部分,并且由于 tableview 中的 scrollview 已停用,因此应该(也不会)出现任何滚动问题。

编辑 2

这实际上应该是这样结束的,但是,我正在自己计算这个,每次我想对单元格进行小的更改时,计算单元格高度的整个代码都需要重写,它是我很难获得恰到好处的高度。

编辑3

到目前为止,我对 tableview 有一个手动计算的高度约束,但是删除此约束并尝试让自动布局处理 tableview 高度大小会产生以下错误:

Scroll View Need constraint for: Y position or height

因此我可以得出结论,tableview 不知道如何根据其带有自动布局的单元格自动计算高度。

最佳答案

您不需要创建高度限制或设置框架。创建 UITableView 的子类,并在每次其 contentSize 更改(即添加或删除新数据)时重新计算其 intrinsicContentSize。这就是您所需要的:

class SelfSizingTableView: UITableView {
override var contentSize: CGSize {
didSet {
invalidateIntrinsicContentSize()
setNeedsLayout()
}
}

override var intrinsicContentSize: CGSize {
let height = min(.infinity, contentSize.height)
return CGSize(width: contentSize.width, height: height)
}
}

关于ios - 自动调整表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44359185/

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