如何让UITableView的tableHeaderView自动布局

2 阅读1分钟

UITableView添加一个extension

extension UITableView {
    var autolayoutTableViewHeader: UIView? {
        set {
            self.tableHeaderView = newValue
            guard let header = newValue else { return }
            header.frame.size =
            header.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
            self.tableHeaderView = header
        }
        get {
            return self.tableHeaderView
        }
    }
}

使用


tableView.autolayoutTableViewHeader = {
    let v = UIView()
    let l = UILabel()
    l.text = "hello world"
    v.addSubview(l)
    l.snp.makeConstraints { make in
       make.left.equalTo(15)
       make.top.equalTo(12)
       make.height.equalTo(33)
       make.bottom.equalToSuperview()
    }
    return v
}()