Dynamic Custom UITableView


うんうん!今日はね.ViewControllerに各種のCustomViewを入れたいのですが、CustomViewを作成してViewControllerに入れたいのです.
view.addSubview(customTableView)
これは役に立たない
では.Table ViewをUIViewに入れて書きましょう△これからCTableと申します.
さあ.私がやりたいのは、このCTableのheightは私が勝手です.すなわち定数には割り当てられない.私たちは自分で店を買いましょう.そしてCTableのheightを知る.
いつも出会うダイナミックな大きさの問題はははは、一度や二度ではありません!やってみよう.
protocol heightDelegate {
    func fh(h: CGFloat)
}
class CTableView: CustomView {
	override func layoutSubviews() {
        super.layoutSubviews()
        table.layoutIfNeeded()       
        print("layoutIfNeed")
        let frame: CGRect = table.frame
        table.frame = CGRect(x: 0.0, y: 0.0, width: frame.width, height: table.contentSize.height) //table.contentSize.height

        delegate?.fh(h: table.contentSize.height)
        
    }
    

}

extension CTableView: UITableViewDelegate, UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return "헤드 입니다."
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! UITableViewCell
        cell.textLabel!.text = "됐음 좋겠다"
        cell.backgroundColor = #colorLiteral(red: 0.721568644, green: 0.8862745166, blue: 0.5921568871, alpha: 1)
        return cell
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 30
    }
    
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        self.layoutSubviews()
        print("called willDisplay natural")
    }
}

デフォルトのサイズは248から、の更新を続行します.
理想のViewControllerに更新すればいいです.