【问题标题】:Header Cell of UITableView in SwiftSwift 中 UITableView 的 Header Cell
【发布时间】:2022-01-24 11:04:51
【问题描述】:

我正在使用带有标题的 UITableView。对于标题,我使用 viewForHeaderInSection。我的标题单元格中有一个标签和一个按钮。我还有一个数组来给我的 headerViewCell 的标签命名。我的数组是

let cellArray = ["Cat", "Dog", "Mouse", "Girraffe", "Zebra"]  

我正在为 headerViewCell 的按钮添加一个 @objc 函数并使用按钮的标签。

这是我的代码:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let headerView = tableView.dequeueReusableCell(withIdentifier: "HeaderTableViewCell") as! HeaderTableViewCell

    headerView.cellLabel.text = self.cellArray[section]
    headerView.cellButton.tag = section
    headerView.cellButton.addTarget(self, action: #selector(expandRow(sender:)), for: .touchUpInside)

    return headerView
}

我的问题是我想更改所选单元格的 @objc func 中的 cellLabel。假设我点击第一个单元格,我想更改第一个单元格标签名称,但不知道该怎么做。

如果我们使用行而不是标题,这很容易,因为行有 cellForRowAt。但我无法访问该选定的标题单元格。

有人有解决办法吗?

【问题讨论】:

    标签: swift xcode uitableview xcode13 uitableviewsectionheader


    【解决方案1】:

    cellArray 设为var

    var cellArray = ["Cat", "Dog", "Mouse", "Girraffe", "Zebra"]  
    

    然后在@objc函数里面改模型

    cellArray[tag] = //// new content
    tableView.reloadData()
    

    【讨论】:

    • 我的标题单元格中还有一张图片。图像保存在我的资产中。如果我必须更改所选单元格的图像怎么办?
    【解决方案2】:
    @IBAction func expandRow(_ sender: UIButton)
    {
        cellArray[sender.tag] = "new value"
        tableView.reloadData()
    }
    

    【讨论】:

    • 我的标题单元格中还有一张图片。图像保存在我的资产中。如果我必须更改所选单元格的图像怎么办?
    【解决方案3】:

    我自己得到了答案。这就是我在 @objc func 中所做的:

    
    let cell = tableView.cellForRow(at: sender.section) as? HeaderTableViewCell
    
    cell.cellLabel.text = "monkey"
    
    

    【讨论】:

      猜你喜欢
      • 2015-10-17
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2017-06-12
      • 2023-03-30
      相关资源
      最近更新 更多