swift - swift中的可扩展表格视图部分
问题描述
嘿,我正在开发一个应用程序,其中有一个表格视图,其中包含带有自定义单元格的部分。所以我的任务是在单击部分时显示单元格并在再次单击时隐藏。tableview的didselect方法不知道写什么
解决方案
您可以通过删除该部分的所有单元格来隐藏单元格。例如,我在标题视图中添加了一个按钮来触发此功能,该功能将删除当前部分的所有单元格:
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
方法。相反,您可以添加一个协议,您的标头将实现以调用上述函数
推荐阅读
- sql - 在oracle sql中将4229,4转换为4229.4000000
- kubernetes - 简化 Kubernetes RBAC 定义的创建
- linux - 更改文件linux中的日期格式
- ionic3 - 我想给扫描号码的超链接,但我不知道如何给
- java - 我已经尝试了与此异常相关的所有可用答案,但无法解决。甚至 assembleDebug 也给出了这个输出。我是安卓新手
- php - 如何回显videojs的视频元素
- sql-server - 将数据插入表中,其中 id 列应使用同一表中的最新 id 值递增而不使用标识
- java - 如何关闭断开的 jdbc 连接?
- c++ - 变量值在被另一个进程更改时不更新?
- amazon-web-services - 连接 ImportValue 和参数存储值