Настроить статический заголовок табличного представления - Swift - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь настроить статический заголовок раздела UITableViewController с помощью UITableViewCell.

Я мог бы успешно настроить заголовок раздела в динамическом 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

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Я думаю, что вы должны развернуть ячейку при использовании 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
    }
0 голосов
/ 22 ноября 2018

Проблема в том, что вы должны вернуть 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...