TableView.tableHeadView

layoutFittingCompressedSize使headerView高度自適應

好久沒搞過這些事情了,今天寫UI,突然需要tableView.tableHeadView自適應高度,
本來是個很簡單的事情,由于忘了一個點,瞎忙好久,[Cry]

1,創(chuàng)建TableView

 let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 100, height: 100),style: UITableView.Style.plain)
        tableView.delegate = self
        tableView.dataSource = self
        self.view.addSubview(tableView)
        self.tableView = tableView

        tableView.snp_makeConstraints { (make) in
            make.top.equalTo(self.view.snp_top)
            make.left.right.equalTo(0)
            make.bottom.equalTo(self.view.snp_bottom)
        }

2,添加HeadView

let header = UIView()
        
        let label = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 30));
        label.text = self.content
        label.numberOfLines = 0
        header.addSubview(label)
       //設置header寬度 
        header.snp_makeConstraints { (make) in
            make.width.equalTo(UIScreen.main.bounds.width)
        }
     
        label.snp.makeConstraints { (make) in
            make.left.equalTo(header.snp_leftMargin).offset(8)
            make.right.equalTo(header.snp_rightMargin).offset(8)
            make.top.equalTo(header.snp_top)
            make.bottom.equalTo(header.snp_bottom)
        }
 
        self.tableView.tableHeaderView = header;

3,重設HeadView高度

let height = header.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
        var frame = header.bounds;
        frame.size.height = height;
        header.frame = frame;
        self.tableView.tableHeaderView = header;
      
        self.tableView.tableHeaderView?.setNeedsLayout();
        self.tableView.tableHeaderView?.layoutIfNeeded();
        

本來這樣就行了,可是我由于理解問題,認為header的width系統(tǒng)會自動判斷,少了這句

 header.snp_makeConstraints { (make) in
            make.width.equalTo(UIScreen.main.bounds.width)
        }

始終高度獲取不到。
小伙伴們不要忘記!最后說一句:坑!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容