tableView(_:heightForHeaderInSection :)无法正常工作

时间:2018-06-24 08:15:56

标签: ios swift uitableview

我正在UITableView中实现UIViewController。我已经能够使用自定义UITableViewCell来显示文本,但是我找不到在单元格之间放置间距的方法。

我曾尝试实现tableView(_:heightForHeaderInSection:),但似乎没有调用它,因为我试图放入打印语句以查看其是否运行。

3 个答案:

答案 0 :(得分:1)

我遇到的问题是 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
}

答案 1 :(得分:0)

将此添加到您的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
}

答案 2 :(得分:0)

请确保将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