如何在展开它们的同时在表格视图单元格中添加子视图并对它们的子视图元素执行操作?

Posted

技术标签:

【中文标题】如何在展开它们的同时在表格视图单元格中添加子视图并对它们的子视图元素执行操作?【英文标题】:How to add subviews in Table View Cell while Expanding them and perform actions on their elements of SubViews? 【发布时间】:2017-05-03 10:56:41 【问题描述】:

图像描述了我必须将这种子视图添加到我现有的单元格中,并且在多次单击添加图标时也要添加相同的子视图。

我在添加子视图时遇到困难。如果有人可以为我提供处理此结构的正确方法,请帮助我。

【问题讨论】:

【参考方案1】:

您可以在界面构建器中将单元格设计为展开模式,并正确设置自动布局约束,而不是在单元格展开时将子视图添加到 tableView 单元格。

1) 在界面构建器中,为展开的单元格设计您的单元格视图,并在您希望在展开单元格时添加的视图中添加子视图。

2) 现在正确设置自动布局约束,不要忘记为包含已扩展单元格的所有子视图的视图设置高度约束。

3) 取出在步骤 2 中创建的高度约束的出口。

4) 现在将正常单元格的高度约束的常量值设置为 0,将展开单元格的值设置为 > 0

    heightConstraint.constant = 100

【讨论】:

实际上,如果我第二次单击“添加”图标,它将第二次添加该视图,依此类推...我看过教程,显示扩展为单个视图并折叠它。我很困惑怎么可能我通过处理多个添加按钮点击的自动布局创建这样的单元格。 你必须在点击添加图标按钮时检查它,如果它已经被消耗,那么你必须通过将 heightContaint 设置为 0 来折叠它 if heightConstraint.constant == 0 // 展开单元格else//折叠单元格 我想我不能使用高度约束。展开单元格后,我必须对“从按钮单击”和“到按钮单击”执行一些操作。所以如果我在一个单元格中创建所有东西。如果所有按钮都在单个单元格中,我可能无法识别该特定按钮的索引 path.row。如果我无法准确指定您,请告诉我。 您的单元格将是相同的,它不会随着您展开或折叠它而改变。要识别按钮的索引路径,您可以在创建按钮时将值分配给按钮的标签属性tableview cellForRowAtIndexpath 的数据源方法中的单元格为:yourButton.tag = indexPath.row【参考方案2】:

执行此操作的最简单方法是将每个添加的内容视为新行并对其进行跟踪,而不是将其全部放在一个单元格中。

另一种方法是在这个单元格内添加另一个 tableview 并根据它的行数增加它的高度。但我不确定这种情况下的性能。

【讨论】:

以上是关于如何在展开它们的同时在表格视图单元格中添加子视图并对它们的子视图元素执行操作?的主要内容,如果未能解决你的问题,请参考以下文章

动画在具有动态单元格高度的单元格中添加子视图

在表格视图单元格中动态调整子视图的大小

在表格视图单元格中添加集合视图 swift 3

如何在表格视图单元格中添加 12 个文本字段并通过其标记值访问每个文本字段的文本?

无法同时添加和删除行

如何使用 Swift 在集合视图单元格中添加表视图?