ios - 自定义表格单元格中的 stackview

标签 ios objective-c uitableview uistackview

在自定义表格单元格中,我尝试在单击按钮时隐藏/显示 View 。我能够实现这一点,但无法删除空白。如何删除这些空格。我对堆栈 View 使用了自动约束,但似乎没有用。您能建议一种简单的方法来在 View 处于隐藏状态时删除空格吗?

注意:自定义单元格在附加到表格 View 时应根据内容自动调整其高度

编辑一个

As you can see the start date and end date are placed at the bottom without any dynamic height change

正如您所看到的,开始日期和结束日期放置在底部,没有任何动态高度变化

Preview of the custom cell. In this Cell stack view at the bottom is set to hidden initially.

自定义单元格的预览。在此单元堆栈 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/

相关文章:

ios - NSDate <不是 Objective-C 对象>

ios - 已安装字体列表

objective-c - 什么可能导致无法在一台计算机上启动 OS X 应用程序的两个副本?

objective-c - 在 Cocoa View 层次结构中,什么决定了 subview 的位置?

ios - GADBannerView 滚动与 UITableView IOS

ios - 为旋转的 UIView 找到给定 y 的最小 x

objective-c - 如何设置部分 curl 模式不隐藏工具栏?

ios - 我是否需要 ApplicationDelegate 函数中的 UIApplication* 应用程序?

ios - 使用 Swift 获取 UITableViewCell 中 UITextField 的 indexPath

swift - 在表格 View 中选择单元格时删除动画