【问题标题】:UITableViewCell with two UIStackViews带有两个 UIStackViews 的 UITableViewCell
【发布时间】:2017-02-28 17:23:37
【问题描述】:

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

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

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

是否需要调整垂直拥抱/抗压优先的属性?

非常感谢任何帮助。

【问题讨论】:

    标签: ios objective-c uitableview uistackview


    【解决方案1】:

    也许我误解了你的问题,但是如果它的高度应该是动态的,你为什么要修复顶部 StackView 的高度?您应该删除此约束并将两个 StackView 的固有大小(低于“内容压缩阻力优先级”)设置为“占位符”以保持 IB 满意。 如果您没有其他约束问题,则顶部 StackView 的行为将与底部 StackView 相同。

    【讨论】:

    • 你没有误会。我添加了 heightconstraint 来让 IB 开心。在移除此约束并将 Intrinsic Size 设置为仅顶部 StackView 的“Placeholder”之后,一切似乎都正常工作。拯救了我的一天,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多