我正在尝试使用UITableViewCell自定义静态UITableViewController节标题。
通过使用以下代码集,我可以成功地在动态tableView中自定义节标题
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerCell = tableView.dequeueReusableCell(withIdentifier: "HeaderCell")
headerCell?.textLabel?.text = "Section \(section + 1)"
headerCell?.textLabel?.textColor = UIColor.blue
return headerCell
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 50
}
但是,不能用于静态tableview。 如何使用静态tableView自定义节标题
答案 0 :(得分:-1)
问题是您应该在UIView
方法中返回UITableViewCell
,而不是viewForHeaderInSection
。
此外,您还应保留一个标头单元格实例以供将来使用(例如修改其视图)
像这样在您的TableViewController
中创建一个字段:
private var headerViewCell: UITableViewCell?
,然后在viewForHeaderInSection
中执行以下操作:
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerCell = tableView.dequeueReusableCell(withIdentifier: "HeaderCell")
headerCell?.textLabel?.text = "Section \(section + 1)"
headerCell?.textLabel?.textColor = UIColor.blue
self.headerViewCell = headerCell
return headerCell?.contentView
}
答案 1 :(得分:-1)
我认为您在使用dequeueReusableCell
时应该打开单元格。
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerCell = tableView.dequeueReusableCell(withIdentifier: "HeaderCell") as! HeaderCell // here header cell is your cell's custom class
headerCell.textLabel.text = "Section \(section + 1)"
headerCell.textLabel.textColor = UIColor.blue
return headerCell
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 50
}