当我点击部分按钮时 Tableview 单元格不展开

Tableview Cell Not Expanding When I tap On Section Button

我正在创建具有展开和折叠功能的表格视图。我的问题是当我点击任何部分的部分按钮时,只有第一部分是 Expand.If 我点击任何其他部分,然后再次只有第一部分会展开。我有一个 xib class 用于自定义部分,我添加了一个用于扩展部分的按钮。

这是我的代码

我要返回 4 个部分。

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> 
    Int {
    
        return (sections[section].collapsed!) ? 0 : 4
}

@objc Class 处理功能

 @objc func toggleCollapse(sender: UIButton) {
  let section = sender.tag
  let collapsed = sections[section].collapsed
  sections[section].collapsed = !collapsed!
self.wareHouseTable.reloadSections(NSIndexSet(index: section) as IndexSet, with: .automatic)
}

我的模型Class

struct Section {
var name: String!
var items: [String]!
var collapsed: Bool!

init(name: String, items: [String]) {
self.name = name
self.items = items
self.collapsed = true
  
}
}

您可以通过简单的方式展开和折叠功能。

  1. 首先在 tableview 数据源方法中从 cellfor row 设置按钮标签
  2. 其次在按钮操作方法中获取该标记并执行所需的代码。

Tableview 数据源和委托

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! UITableViewCell
    cell.buttonExpand.tag = indexPath.section
    return cell
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return (sections[section].collapsed!) ? 0 : 4
}

按钮操作

@IBAction func actionExpand(_ sender:UIButton) {
    let senderTag = IndexPath(item: sender.tag, section: 0) /// Return Indexpath
    sections[senderTag.section].collapsed = !sections[senderTag.section].collapsed
    self.wareHouseTable.reloadSections(NSIndexSet(index: senderTag.section) as IndexSet, with: .automatic)
}