使用显示/减少按钮展开/折叠表格视图单元格

Posted

技术标签:

【中文标题】使用显示/减少按钮展开/折叠表格视图单元格【英文标题】:Expand/Collapse tableview cell with show/less button 【发布时间】:2017-11-26 13:58:07 【问题描述】:

我想创建一个如下图所示的表格视图...

table view cell

并非所有单元格都有额外的值,但所有单元格都有标题描述。单击“显示详细信息”按钮时,单元格将展开动画。我有以下问题。

    是否需要设计 2 个单元格(一个单元格用于标题和描述,另一个用于标题、描述和额外值) 如何在单击“显示详细信息”按钮时展开单元格。有些单元格只有描述,有些单元格同时有描述和额外值。 哪个更有效?在这种情况下自动调整大小或自动布局。

任何建议都会有所帮助。

【问题讨论】:

Expand UILabel inside UITableView with "more" button like Instagram的可能重复 【参考方案1】:

以下是答案:

    不,不是。但是,如果您可以显示没有“显示详细信息”按钮的单元格的设计,我会说更准确的答案。但基本上,我会说规则是“如果顶部相同,那么你可以对两个单元使用相同的设计”。因为你要做的只是隐藏单元格的底部。由于单元格的高度较小,它将被隐藏。但是:考虑到你想让它变得精简,你可能不希望单元格的底部有一个多余的部分,它被隐藏起来不做任何事情。所以理想情况下是有 2 个单独的单元格,但回答您的问题是没有必要

    这里有2个问题:如何查看点击+如何展开。我会一一解释。

2.1。如何检查点击:在单元格类中创建一个委托,它将告诉您的视图控制器“显示详细信息”按钮已被点击,然后在视图控制器中展开单元格。

2.2。只需使用heightForCellAtIndexPath 来调节单元格的高度。如果它被扩展,则使其更高,如果不使其更短。但这里的要点是,当调用委托方法时,您需要调用tableView.reloadRows(at:),您需要在其中重新加载带有动画的单元格,它会以漂亮的动画扩展单元格。顺便说一句,我更喜欢使用 .fade 动画。

    我想我在上面回答了这个问题,但如果还不清楚,请告诉我。

希望对你有帮助。

【讨论】:

我应该为此使用自动高度计算还是自己计算单元格高度? @WAHIDMARUF 最好使用自动高度,并让单元格根据自动布局约束重新计算其高度。除了您可以使用表格视图 beginUpdates 和 endUpdates 方法来设置单元格高度变化的动画,只需查看文档即可:) 一个小问题,你能告诉我我应该使用标签还是文本视图来获取“具有值 1、值 2、值 3 的额外值”部分?我必须为此使用属性。但是什么会更有效呢? 据我了解,值行的数量会有所不同吗?然后我会使用 UIView 的堆栈视图,其中包含 2 个标签(值 1 和价格)

以上是关于使用显示/减少按钮展开/折叠表格视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

展开和折叠表格视图中的单元格

在 ios 中展开和折叠表格视图单元格

展开和折叠所有表格视图单元格

我们如何快速在表格视图底部添加展开和折叠单元格

通过使用约束自行调整大小来展开和折叠 TableView 单元格

UITableviewCell 高度未在滚动时重置