如何解决展开唯一轻拍的单元格并折叠其他单元格
点击表格单元格时,我正在执行展开/折叠,但是我必须关闭除点击的单元格以外的所有其他单元格。尝试过此解决方案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 举报,一经查实,本站将立刻删除。