在自定义表格单元格中,我尝试在单击按钮时隐藏/显示 View 。我能够实现这一点,但无法删除空白。如何删除这些空格。我对堆栈 View 使用了自动约束,但似乎没有用。您能建议一种简单的方法来在 View 处于隐藏状态时删除空格吗?
注意:自定义单元格在附加到表格 View 时应根据内容自动调整其高度
编辑一个
正如您所看到的,开始日期和结束日期放置在底部,没有任何动态高度变化
自定义单元格的预览。在此单元堆栈 View 中,底部最初设置为隐藏。
最佳答案
您有几个选择...
1)使用另一个堆栈 View :
- 将顶部的“始终可见”元素嵌入
UIView
- 将该 View 和“有时隐藏”的堆栈 View 嵌入到垂直“外部”堆栈 View 中
- 将这个新的“外部”堆栈 View 限制在单元格内容 View 的所有 4 侧
现在,当您隐藏“有时隐藏”的堆栈 View 时,它不会占用任何空间。
2)使用多个底部约束:
- 保持底部约束从“有时隐藏”堆栈 View 的底部到单元格内容 View 的底部。使其成为
IBOutlet
- 我们将其称为whenHiddenConstraint
- 添加从最底部“始终可见”元素底部到单元格内容 View 底部的约束。使其成为
IBOutlet
- 我们将其称为whenVisibleConstraint
- 将
whenVisibleConstraint
的优先级设置为750
- 将
whenHiddenConstraint
的优先级设置为250
现在,在您的代码中,当隐藏“有时隐藏”堆栈 View 时:
theStackView.isHidden = true
whenVisibleConstraint.priority = .defaultLow
whenHiddenConstraint.priority = .defaultHigh
当您想要显示“有时隐藏”的堆栈 View 时:
theStackView.isHidden = false
whenHiddenConstraint.priority = .defaultLow
whenVisibleConstraint.priority = .defaultHigh
关于ios - 自定义表格单元格中的 stackview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59320164/