如何将子视图添加到 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。您必须实现 SLExpandableTableViewDelegate
和 SLExpandableTableViewDatasource
,其中包含不同的方法,您还必须提供内部表格视图。
希望这对您有所帮助。
【讨论】:
这应该是一个注释,直到或除非,作为努力的代码的某些部分被包含为答案。 对@Mr.Bista 那种解决方案发表在评论中而不是在回答中【参考方案4】:你需要自己做一些工作,我可以给出指示,从我的角度来看,这会给你一个方法:-
-
制作一个您想要展开的自定义单元格。
在设计单元格时,根据您的需要将其在情节提要中的高度设置为 200 左右,并添加您希望在单元格展开时看到的所有元素。
您需要两个委托方法,第一个是 -didSelectItemAtIndexPath,第二个是位于索引路径的 HeightForRowAtIndexPath。
首先,您需要确保用户点击了您想要展开的按钮或单元格,并且您需要调用 didSelectItemAtIndexPath。
获得单元格位置后,在 HeightForRowAtIndexPath 中检查 indexpath 是否等于单元格的 indexpath,如果是,则返回单元格的确切高度(即:200),否则返回默认高度(即:70)你的细胞。
注意:在 didSelectItemAtIndexPath 中需要调用方法来更新当前单元格
[self.tableView beginUpdates];
[self.tableView endUpdates];
【讨论】:
以上是关于如何将子视图添加到 TableViewCell?的主要内容,如果未能解决你的问题,请参考以下文章
是否不可能将子视图添加到我的 UITableViewCell 的 contentView 并使其宽度与 contentView 相等?
如何将子视图添加到情节提要中的自定义 UITableViewCell
如何将子视图添加到自定义 UICollectionViewCell