tableView (_: heightForHeaderInSection :) не работает - PullRequest
0 голосов
/ 24 июня 2018

Я реализую UITableView в моем UIViewController.Мне удалось отобразить мой текст с помощью пользовательского UITableViewCell, но я не могу найти способ поставить интервал между своими ячейками.

Я пытался реализовать tableView(_:heightForHeaderInSection:), но, похоже, этоне вызывается, поскольку я пытался вставить оператор print, чтобы проверить, выполняется ли он.

Ответы [ 3 ]

0 голосов
/ 24 июня 2018

Убедитесь, что вы задали делегатом tableview ваш viewcontroller (и убедитесь, что ваш viewcontroller соответствует протоколу UITableViewDelegate):

class CustomTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet weak var tableView: UITableView! {
        didSet {
            tableView.dataSource = self
            tableView.delegate = self
        }
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 5
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    }

    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 20
    }

}

Результаты:

result

0 голосов
/ 06 апреля 2019

У меня была проблема, что heightForHeaderInSection не работал, но после того, как я установил viewForHeaderInSection, тогда высота работает должным образом. Убедитесь, что вы установили заголовок представления в разделе.

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let view = UIView.init(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 44))
    view.backgroundColor = .white
    return view
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
   return 44
}
0 голосов
/ 24 июня 2018

Добавьте это в ваш viewDidLoad():

let HEADER_HEIGHT = 100
tableView.tableHeaderView?.frame.size = CGSize(width: tableView.frame.width, height: CGFloat(HEADER_HEIGHT))

Другой способ -

public override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 100
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...