我有一个UITableView,其中这些部分下的单元格数和单元格数来自我的服务。部分的数量是动态的,并包含动态单元格。取决于来自服务的数据。我想在单击单元格时折叠部分。单击下面的单元格时,每个部分都应折叠。我怎么能崩溃呢?我已经搜索了很多,但是当我们点击它展开和折叠的部分时,大多数结果都会显示出来。但我想折叠单击单元格的部分。我在段标题中放置数据的代码就是这个,
func numberOfSections(in tableView: UITableView) -> Int {
if tableView == resMenuTableView{
return subCategoryModel!.count
}
else
{
return AddonCategoryModel!.count
}
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
if tableView == resMenuTableView{
return subCategoryModel![section].subCatName
}
else
{
return AddonCategoryModel![section].name
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == resMenuTableView{
return subCategoryModel![section].items.count
}
else
{
return AddonCategoryModel![section].addonItems.count
}
}
答案 0 :(得分:0)
当您点击单元格时,您将获得indexPath.section
的部分。您可以更新viewState以设置节折叠标志,然后重新装入表。设置了折叠标志的部分为该部分指定了行数0。
如果一次只有一个部分在表格中崩溃,那么你就很容易处理逻辑。
答案 1 :(得分:0)
在不初始化的情况下获取全局Int值。
var selectedSection: Int!
在单元格上轻敲时,将单元格的节索引指定给selectedSection并重新加载该节。如果你想解开剩下的部分,只需重新加载整个tableview,而只重新加载一个部分。
selectedSection = indexPath.section
tableView.reloadSections(IndexSet(integer: selectedSection), with: .top)
在numberOfCellsForSection方法中,检查section和selectedSection是否相同。如果它们相同,则需要折叠该部分,这意味着您需要为原始行计数。