我处于一种情况,我希望 UITableViewCells 根据数据具有可变数量的子视图。显然这会导致每个单元格的动态高度。我研究并发现了一篇非常好的帖子,在Using Auto Layout in UITableView for dynamic cell layouts & variable row heights。github 上的示例项目展示了如何计算具有固定数量子视图的单元格的高度,即两个 UILabel,其中一个标签是多行的。我明白这一点,但就我而言,这些标签的数量可能会有所不同。
我的第一种方法是,我可以在 Cell 的 contentView 中添加一个 UIView,然后在该视图中添加所有可用的 UILabel。(可能在计算 heightForRowAtIndexPath 时)。然后在 tableViewCell 子类的 UpdateConstraints 中添加所有必需的约束,并希望 UIView 将扩展以获取其中所有 UILabel 的组合高度。但这似乎正在这样做。我知道 UIView 没有计算 intrinsicContentSize 。但是我们现在如何确保它占用了它的子视图的大小。
我尝试的第二种方法是直接在单元格的内容视图中添加 UILabels。这适用于某些标签,但对于某些标签来说,它只是搞砸了。
我想我在这里与两个主要问题作斗争:
我什么时候应该创建单元格的动态子视图?
如何根据它的 subViews 的 intrinsicSize 在 UITableViewCell 内动态调整 UIView(不是 UILabel)的大小。
- 我可以在这里使用可重复使用的单元格标识符吗?因为每一行根据内容都是唯一的。
我正在使用 @smileyborg 在https://github.com/smileyborg/TableViewCellWithAutoLayout提供的代码