首页 > 解决方案 > (Swift) 展开 tableViewSection 后如何管理 tableView 单元格的名称?

问题描述

在其中一个部分中,当我单击 toggleSwitch 时,它应该根据相同单元格的数量展开array.count

下面的方法工作正常。当我单击切换时,它会展开一个行数等于数组中元素数的部分:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        switch section {
        case 0:
            return 7
        case 4:
            if expand == true {
                return array.count + 1
            }
            else {
                return 1
            }
        default:
            return 1
        }
    }

array可以有任意数量的元素,具体取决于 Realm 中的数据。所以它可以是 0,但也可以是 5、14 等。
代码CellForRowAt也可以正常工作,用动画扩展部分:

 cell.labelCell.text = "elements (\(array.count))"

 cell.cellSwitch.isOn = self.expand

 cell.callback = { [unowned self] check in
      self.expand = check
      UIView.transition(with: tableView,
                          duration: 0.5,
                          options: .transitionCrossDissolve,
                          animations: { self.tableView.reloadData()})
                }

注意:部分中的所有新单元格与其父单元格的类型相同。因此,每个新单元格都有自己的名称,切换...
问题:如何使新单元格的名称与array. 喜欢:如果数组中的第一个元素是"abc",我想制作第一个单元格: cell.labelCell.text = "abc" (array[0])

标签: iosswiftuitableviewexpandable

解决方案


代替

cell.labelCell.text = "elements (\(array.count))"

cell.labelCell.text = "elements (\(array[indexPath.row]))"

边注:

如果仅重新加载部分而不是整个表格视图,则可以免费获得动画。


推荐阅读