Swift UITableViewのセクションヘッダーをカスタマイズする方法メモ

やることは以下
・カスタムUIViewの実装
・viewForHeaderInSectionとheightForHeaderInSectionメソッドの定義

viewForHeaderInSectionはカスタムViewを返す
heightForHeaderInSectionはカスタムViewの高さを返す
テーブルセルのカスタマイズと考え方は同じ

カスタムUIViewの実装
class CustomeView {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    override init(frame: CGRect) {
        super.init(frame: frame)
    }
    func setup(text: String) -> CGFloat {

      let width = UIScreen.main.bounds.size.width
      let label = UILabel(frame: CGRect(x: 0, y: 0, width: width: height: 100))
      label.text = text
      addSubview(label)

      return label.frame.height
    }
}
viewForHeaderInSectionとheightForHeaderInSectionメソッドの定義
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    ・・・

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
	let header = CustomeHeaderView()
	let _ = header.setup(text: "...")
	return header
    }

    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
	let header = CustomeHeaderView()
	return header.setup(text: "...")
    }

    ・・・
}

以上です