带有两个 UIStackView 的 UITableViewCell

UITableViewCell with two UIStackViews

我遇到了 UITableViewCell 的布局问题,它由(从上到下)(1)一个 UIStackView,(2)一个固定高度的 UIView 和(3)另一个 UIStackView 组成。在顶部的 UIStackView 中,我想根据某些数据结构垂直放置一些 UILabel 实例。这些标签的高度可能不同。在底部的 UIStackView 中,我想垂直放置几个 UIButton 实例。这个数字还取决于一些数据结构。

问题与 AutoLayout 有关(至少我认为是)。我将如何设置约束,以便 UITableViewCell 在需要放置在屏幕上时为顶部 UIStackView 和底部 UIStackView 创建足够的 space。单元格的布局在单独的 XIB 文件中定义。

到目前为止,我在顶部 UIStackView 上有一个高度约束。根据标签的 frameheight 调整堆栈视图的高度。但事实证明,高度始终具有相同的值。我知道这一点,因为我的 TableView 中需要这个特定 UITableViewCell 的两个实例。 底部的 UIStackView 没有高度约束并且始终具有正确的布局。

是否需要调整垂直 hugging/compression 阻力优先级的属性?

非常感谢任何帮助。

也许我误解了你的问题,但如果顶部 StackView 的高度应该是动态的,你为什么还要固定它的高度?您应该删除此约束并将 StackView 的固有大小(低于 "Content compression resistance priority")设置为 "placeholder",以使 IB 满意。 如果您没有其他约束问题,那么顶部 StackView 的行为将与底部相同。