【发布时间】:2014-10-18 21:37:58
【问题描述】:
我处于一种情况,我希望 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 。但是我们现在如何确保它占用了它的子视图的大小。
我尝试的第二种方法是直接在单元格的内容视图中添加 UILabel。这适用于某些标签,但对于某些标签而言,它只是搞砸了。
我认为我在这里解决了两个主要问题:
什么时候应该创建单元格的动态子视图?
如何动态调整 UIView(不是 UILabel)的大小 UITableViewCell 基于它的 subViews 的 intrinsicSize。
- 我可以在这里使用可重复使用的单元格标识符吗? 基于内容的独特性。
我正在使用@smileyborg 在https://github.com/smileyborg/TableViewCellWithAutoLayout提供的代码
【问题讨论】:
标签: ios uitableview ios-autolayout