微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

展开唯一轻拍的单元格并折叠其他单元格

如何解决展开唯一轻拍的单元格并折叠其他单元格

点击表格单元格时,我正在执行展开/折叠,但是我必须关闭除点击的单元格以外的所有其他单元格。尝试过此解决方Expand only the cell that has been tapped解决方案不适用于我。

下面为扩展/折叠而编写的代码

func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        return datasource.count
    }

    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView .dequeueReusableCell(withIdentifier: String(describing: ExpandingTableViewCell.self),for: indexPath) as! ExpandingTableViewCell
        cell.set(content: datasource[indexPath.row])
        return cell
    }

    func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
        let content = datasource[indexPath.row]
        content.expanded = !content.expanded
        tableView.reloadRows(at: [indexPath],with: .automatic)
    }

解决方法

您需要折叠所有单元格并更改当前单击的一种状态,然后重新加载所有表

func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
    let current =  datasource[indexPath.row].expanded
    datasource.forEach {  $0.expanded = false }
    let content = datasource[indexPath.row]
    content.expanded = !current 
    tableView.reloadData()
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。