swift中的expandable tableview部分

问题描述 投票:-7回答:1

嘿那里我正在开发一个应用程序,我有一个tableview,其中包含自定义单元格的部分。所以我的任务是在单击部分时显示单元格,再次单击时隐藏。我不知道在tableview的didselect方法中写什么

swift
1个回答
-1
投票

您可以通过删除该部分的所有单元格来隐藏单元格。例如,我在标题视图中添加一个按钮,触发此功能将删除当前部分的所有单元格:

 func toggleView() {
    // SHOW
    if toggleStatut == false {
        toggleStatut = true
        // Get indexPath of my element in my second section
        var indexPaths = self.tableView.indexPathsForVisibleRows
        indexPaths = indexPaths?.filter({ (indexPath) -> Bool in
            return indexPath.section == 1
        })
        self.tableView.beginUpdates()
        self.tableView.deleteRows(at: indexPaths ?? [], with: .fade)
        self.tableView.endUpdates()
    } 
    // HIDE
    else {
        toggleStatut = false
        let indexPaths = (0..<elements.count).map { IndexPath(row: $0, section: 1) }
        self.tableView.beginUpdates()
        self.tableView.insertRows(at: indexPaths , with: .fade)
        self.tableView.endUpdates()

    }
}

所以不需要使用didSelect方法。相反,您可以添加标头将实现的协议来调用上述函数

© www.soinside.com 2019 - 2024. All rights reserved.