自定义表格单元格中的堆栈视图
Posted
技术标签:
【中文标题】自定义表格单元格中的堆栈视图【英文标题】:stackview in custom table cell 【发布时间】:2019-12-13 10:03:22 【问题描述】:在自定义表格单元格中,我试图在单击按钮时隐藏/显示视图。我能够做到这一点,但无法删除空白。如何删除那些空格。我对堆栈视图使用了自动约束,但似乎没有用。当视图处于隐藏状态时,任何人都可以建议一种简单的方法来删除空格。
注意: 自定义单元格在附加到表格视图时应根据内容自动调整其高度
编辑一个
如您所见,开始日期和结束日期位于底部,没有任何动态高度变化
自定义单元格的预览。在此单元格堆栈视图中,底部最初设置为隐藏。
【问题讨论】:
您是否在进行更改后重新加载单元格? 如何定义单元格高度?是维度吗?您是否在更新时重新加载表格单元格?空格处?你应该更新你的问题,从我的角度来看它很模糊。 显示一些你尝试过的代码。 使用“UITableViewAutomaticDimension”获取高度 您可以创建一些约束并在按钮单击之间切换 【参考方案1】:你有几个选择...
1) 使用另一个堆栈视图:
在UIView
中嵌入顶部的“始终可见”元素
将该视图和“有时隐藏”的堆栈视图嵌入到垂直的“外部”堆栈视图中
将此新的“外部”堆栈视图约束到单元格内容视图的所有 4 个侧面
现在,当您隐藏“有时隐藏”的堆栈视图时,它不会占用任何空间。
2) 使用多个底部约束:
保持底部约束从“有时隐藏”堆栈视图的底部到单元格内容视图的底部。将其设为IBOutlet
- 我们将其称为whenHiddenConstraint
从最底部的“始终可见”元素的底部添加一个约束到单元格内容视图的底部。将其设为IBOutlet
- 我们将其命名为whenVisibleConstraint
将whenVisibleConstraint
的优先级设置为750
将whenHiddenConstraint
的优先级设置为250
现在,在您的代码中,当隐藏“有时隐藏”的堆栈视图时:
theStackView.isHidden = true
whenVisibleConstraint.priority = .defaultLow
whenHiddenConstraint.priority = .defaultHigh
当您想显示“有时隐藏”的堆栈视图时:
theStackView.isHidden = false
whenHiddenConstraint.priority = .defaultLow
whenVisibleConstraint.priority = .defaultHigh
【讨论】:
以上是关于自定义表格单元格中的堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章
自定义表格视图单元格中的 UITextField。点击单元格/文本字段时显示选择器视图