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

时间:2021-07-05 08:53:19

标签: ios swift uitableview

我有一个tableview。某些单元格包含图像和其他文本。

我希望能够折叠和展开单元格。为了能够做到这一点,我做了以下事情:

我创建了一个变量 isExpanded = true 在 cellForRowAt 我检查单元格是否包含文本然后...

 if textIsExpanded {
               
  cell.textLabel?.sizeToFit()
  cell.textLabel?.numberOfLines = 0
 }

这样单元格可以和里面的文本一样高。

在操作中,我切换 textIsExpanded 并重新加载表格:

 textIsExpanded.toggle()
 table.reloadData()

此过程完美适用于仅包含文本的 tableview。

一些有用的方法是扩展 if 语句并在 false 分支调用中:

 cell.textLabel?.invalidateIntrinsicContentSize()
 cell.textLabel?.layoutIfNeeded()     

但是当我切换变量时这不起作用,这只在启动时起作用。

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

1 个答案:

答案 0 :(得分:0)

使用两个视图(上视图和下视图)的堆栈创建单元格,将 Bool 键添加到在 didSelect 上触发和更改的模型 isExpandable 并选中此项以隐藏或显示您的视图,或者将文本保留为text 或 TextView 由您决定。

Cell Design

Set Your cell with the data

Trigger this on didselect