Header Swift 中 UITableView 的单元格
Header Cell of UITableView in Swift
我正在使用带有 header 的 UITableView。对于 header,我使用 viewForHeaderInSection。我的 header 单元格中有一个标签和一个按钮。我还有一个数组来为我的 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。假设我点击第一个单元格,我想更改第一个单元格 标签名称 但不知道该怎么做。
如果我们使用行而不是 headers,这很容易,因为行有 cellForRowAt。但我无法访问所选 header 单元格。
有人有解决办法吗?
将cellArray
设为var
var cellArray = ["Cat", "Dog", "Mouse", "Girraffe", "Zebra"]
然后在@objc
函数里面改变模型
cellArray[tag] = //// new content
tableView.reloadData()
@IBAction func expandRow(_ sender: UIButton)
{
cellArray[sender.tag] = "new value"
tableView.reloadData()
}
我自己得到了答案。这就是我在 @objc func:
中所做的
let cell = tableView.cellForRow(at: sender.section) as? HeaderTableViewCell
cell.cellLabel.text = "monkey"
我正在使用带有 header 的 UITableView。对于 header,我使用 viewForHeaderInSection。我的 header 单元格中有一个标签和一个按钮。我还有一个数组来为我的 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。假设我点击第一个单元格,我想更改第一个单元格 标签名称 但不知道该怎么做。
如果我们使用行而不是 headers,这很容易,因为行有 cellForRowAt。但我无法访问所选 header 单元格。
有人有解决办法吗?
将cellArray
设为var
var cellArray = ["Cat", "Dog", "Mouse", "Girraffe", "Zebra"]
然后在@objc
函数里面改变模型
cellArray[tag] = //// new content
tableView.reloadData()
@IBAction func expandRow(_ sender: UIButton)
{
cellArray[sender.tag] = "new value"
tableView.reloadData()
}
我自己得到了答案。这就是我在 @objc func:
中所做的
let cell = tableView.cellForRow(at: sender.section) as? HeaderTableViewCell
cell.cellLabel.text = "monkey"