如何将子视图添加到 TableViewCell?

Posted

技术标签:

【中文标题】如何将子视图添加到 TableViewCell?【英文标题】:How to add a subview to a TableViewCell? 【发布时间】:2016-12-15 05:04:20 【问题描述】:

当点击 TableViewCell 中的按钮时,我需要向 TableViewCell 添加一个子视图,它应该显示另一个 tableview 作为子视图,并且 tableview 的高度应该根据单元格的数量是动态的。

我该怎么做?

上面的截图来自一个非常流行的购物应用,我需要在我的项目中做同样的事情。

【问题讨论】:

你有没有像 submenu 这样的子视图的所有 tableview 单元格? 在github/google上搜索“Expandable Table View”,即可得到解决方案 @HimanshuMoradiya 是的,我需要像上面一样向每个单元格添加子视图或子表视图,但子表视图的大小必须根据元素是动态的。 那么你必须使用可扩展的tableview,你会在cocoacontrols.com/controls/ftfoldingtableview得到它 @Shikha 使用该库折叠表视图,您只需像在此表头视图中那样设置主表视图 【参考方案1】:

您可以使用简单的UITableView 轻松实现此目的。为此,您需要将所有主要类别设置为 UITableview 部分,并且可以将受尊重的子类别添加到相应的 rowOfSection

【讨论】:

这不是我想要的 这是解决方案,更好的方法...不建议添加为子视图。 @Shikha 如果您没有通过这种方式获得解决方案,请详细说明您的要求是什么?因为正如您目前已经解释了您的问题,我建议的答案是最简单且推荐的实现方式。【参考方案2】:

您可以只使用一个具有 UITableViewStyleGrouped 样式的表格视图,并将“男性”、“女性”、“儿童和婴儿”设置为 TableView 部分标题,保留一个布尔值来确定每个部分的“numberOfRowsInSection:”的结果并重新加载 tableview。

【讨论】:

【参考方案3】:

在 github 上查看以下链接:

https://github.com/OliverLetterer/SLExpandableTableView

这包含您需要的 Expandable TableView。您必须实现 SLExpandableTableViewDelegateSLExpandableTableViewDatasource ,其中包含不同的方法,您还必须提供内部表格视图。

希望这对您有所帮助。

【讨论】:

这应该是一个注释,直到或除非,作为努力的代码的某些部分被包含为答案。 对@Mr.Bista 那种解决方案发表在评论中而不是在回答中【参考方案4】:

你需要自己做一些工作,我可以给出指示,从我的角度来看,这会给你一个方法:-

    制作一个您想要展开的自定义单元格。

    在设计单元格时,根据您的需要将其在情节提要中的高度设置为 200 左右,并添加您希望在单元格展开时看到的所有元素。

    您需要两个委托方法,第一个是 -didSelectItemAtIndexPath,第二个是位于索引路径的 HeightForRowAtIndexPath。

    首先,您需要确保用户点击了您想要展开的按钮或单元格,并且您需要调用 didSelectItemAtIndexPath。

    获得单元格位置后,在 HeightForRowAtIndexPath 中检查 indexpath 是否等于单元格的 indexpath,如果是,则返回单元格的确切高度(即:200),否则返回默认高度(即:70)你的细胞。

注意:在 didSelectItemAtIndexPath 中需要调用方法来更新当前单元格

[self.tableView beginUpdates];
[self.tableView endUpdates];

【讨论】:

以上是关于如何将子视图添加到 TableViewCell?的主要内容,如果未能解决你的问题,请参考以下文章

是否不可能将子视图添加到我的 UITableViewCell 的 contentView 并使其宽度与 contentView 相等?

如何按顺序将子视图添加到 UIScrollView

如何将子视图添加到情节提要中的自定义 UITableViewCell

如何将子视图添加到自定义 UICollectionViewCell

如何使用自动布局(约束)将子视图添加到 UIPageViewController?

如何将子视图添加到 UITableViewCell